22-接口

接口

对比:

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

接口的本质是契约。

  • 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能...”的思想。(如果你是天使,则必须能飞...)
  • 就像我们人间的法律一样,制定好后大家都遵守
  • 声明类的关键字是class。声明接口的关键字是interface
//interface 接口关键字
//接口都需要有实现类
public interface UserService {
    //接口中的所有定义都是抽象的 public abstract(默认是抽象的)
    //定义增删改查
    void add(String name);//实际是public abstract void add(String name);
    void delete(String name);
    void update(String name);
    void query(String name);
    //接口里定义的属性都是常量,一般不会这样做
    int AGE = 99;//实际是public static final int AGE = 99;
}

public interface TimeService {
    void timer();
}

实现类

  • 实现类我们会以接口名+Impl命名
  • 通过implements关键字实现接口
//类 可以实现接口 implements 接口
//实现了接口的类,就需要重写接口中的方法
//多继承~利用接口实现多继承(两个接口类:UerService,TimeService)
public class UserServiceImpl implements UserService,TimeService{
    @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() {//TimeService里的

    }
}

作用:

  1. 约束
  2. 定义一些方法,让不同的人实现
  3. public abstract
  4. public static final
  5. 接口不能被实例化,接口中没有构造方法
  6. implements可以实现多个接口
  7. 必须重写接口中的方法
//接口
public interface Usb {
    //服务
    void service();
}

//实现类
public class UsbImpl implements Usb{
    @Override
    public void service() {
        System.out.println("链接电脑成功");
    }
}

public class TestUsb {
    public static void main(String[] args) {
        //创建接口类型的变量-->多态
        Usb usb = new UsbImpl();//用接口创建一个变量,我们来研究一个具体的实现类
        usb.service();//链接电脑成功
    }
}
posted @ 2024-06-24 18:29  呆头尖瓜  阅读(1)  评论(0编辑  收藏  举报