接口

  • 接口不是is a的关系,而是具有相同的特征。
  • 一个类可以实现多个接口,类与接口有实现关系,弥补了单继承的缺陷。
  • 接口与接口之间有继承关系,而且可以多继承。
  • 接口可以看作一种规范!!!!

接口的使用:

JDK7及以前:只能定义全局常量和抽象方法  

  • 全局常量:public static final的 ,省略之后也可以
  • 抽象方法:public abstract 的,省略之后也可以

 

JKD8:除了定义全局常量和抽象方法,还可以定义静态方法,默认方法

  • 接口中的静态方法只能用接口来调用 (接口名.静态方法)
  • 当实现类没有重写接口中的默认方法时,通过实现类的对象(对象.默认方法),可以调用接口中的默认方法;
  • 但是如果实现类重写了该接口的默认方法,调用时(对象.默认方法),调用的就是实现类重写的默认方法
  • 在接口中的默认方法被实现类重写了之后,若我想调用接口中的默认方法,可以这样来调:接口名.super.默认方法
  • 接口冲突和类优先原则

 

四种方法创建接口的实现类( 跟抽象类差不多)

 

interface USB{
      void start();
      void stop();
}


class  Phone implememts USB{
      重写start();
      重写stop();
    
}

1.创建接口的非匿名实现类的非匿名对象
Phone phone = new Phone();

2.创建接口的非匿名实现类的匿名对象
new Phone();

3.创建接口的匿名实现类的非匿名对象
USB phone = new USB(){
     重写start();
     重写stop();  
};

4.创建接口的匿名实现类的匿名对象
new USB(){
     重写start();
     重写stop();  
};

 

posted @ 2022-03-30 23:13  陈浩威  阅读(43)  评论(0)    收藏  举报