Day59 接口的定义与实现

接口的定义与实现

1. 接口介绍

普通类:只有具体实现
抽象类:具体实现(普通方法)和规范(抽象方法)都有!
接口:只有规范!(比抽象类还要抽象)自己无法写方法专业的约束!约束和实现分离:面向接口编程

接口就是规范,定义的是一组规则,体现了现实世界中”如果你是...则必须能...”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。

接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。

接口是面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。

2. 关键字(声明用interface/继承用implement(s))**

声明类的关键字是class,

声明接口的关键字是interface (新建一个类后把class改成关键字 interface)!!!!!

继承接口用的关键字是implement(s)

3. 抽象类/普通类/接口 在idea中的不同图标显示

4. 代码

UserService.java

package com.oop.demo11;

//把class改成关键字 interface     ,接口都需要有实现类
public interface UserService {
   //接口中的所有定义其实都是抽象的public abstract
      // 如void run(String name);  //接口默认就是 public abstract void run(String name);
                               //public abstract可写 可不写

    //常量~ public static final
    int AGE = 99;    //接口默认就是public static final int AGE = 99;

//增删改查
    void add(String name);
    void delete(String name);
    void update(String name);
    void query(String name);
}

TimeService.java

package com.oop.demo11;

//class改成interface
public interface TimeService {
    void timer();
}

UserServiceImpl.java

package com.oop.demo11;

//抽象类 是子类通过extends去实现抽象类  有局限性 是单继承
//类通过关键字 implements 实现接口
//实现了接口的类,必须要重写接口的方法  通过快捷键Alt+Insert 点击implements 方法重写
//多继承~ 利用接口通过implements 可以实现多继承~ 用多个方法重写
public class UserServiceImpl implements UserService,TimeService { //implements +方法重写 实现多继承
    @Override
    public void add(String name) {

    }

    @Override
    public void delete(String name) {

    }

    @Override
    public void update(String name) {

    }

    @Override
    public void query(String name) {

    }

    @Override
    public void timer() {

    }
}

快捷键方法重写implements

按Alt+Insert 选择Implement Methods 方法重写

5. 总结接口作用**

接口作用:
1.约束
2.定义一些方法,让不同的人实现~
3.接口中的方法默认都是public abstract
4.接口中的常量默认都是public static final

5.接口不能被实例化~(跟抽象一样不能被new),接口中没有构造方法(都不是类哪来的构造方法)

6.关键字implements可以实现多个接口

7.必须重写接口中的方法

posted @ 2024-01-27 14:28  白小帆  阅读(18)  评论(0)    收藏  举报