接口

接口

给一些抽象方法,封装到一起,某个类使用的时候,根据具体需求再进行重写

interface 接口名{
    //属性
    //方法
}
class 类名 implements 接口名{
    //属性
    //方法
    //接口的抽象方法
}

在jdk8及以后,接口里面的方法不全是抽象方法,也可以有普通方法(前面用default修饰)和静态方法。

注意事项

接口不能被实例化

接口的属性默认是public static final

接口的方法默认是public abstract,也可以写普通方法(前面用default修饰)和静态方法。

接口和接口之间可以继承,但接口不能继承类

类实现接口时,必须重写接口里的所有抽象方法,除非声明抽象类

类可以实现多个接口

接口vs继承

解决问题的不同

​ 继承:解决代码复用性可维护性

​ 接口:设计好各种规范,让其他类来实现他

接口比继承更灵活

​ 继承满足is a,接口满足like a

接口一定程度上满足代码解耦

接口多态特性

多态参数

一个接口I,可以接受A对象,也可以接受B对象,体现接口的多态(接口引用指向实现接口类的对象)

多态数组

在接口I数组中,存放A和B的对象,遍历数组I,是A对象,不仅可以调用接口方法,也可以调用A独有的方法

接口存在多态传递现象

接口多态传递

public class test{
    public static void main(String[] args){
       //接口类型变量指向,实现接口类的对象实例
       IB ib = new Teacher(); 
       //IB 继承了IA接口,Teacher类实现了IB
       //相当于Teacher类实现了接口IA
       //这就是接口多态传递现象
       IA ia = new Teacher();
    }
}

interface IA {}
interface IB extends IA {}
class Teacher implements IB{}
posted @ 2021-11-12 00:05  独高的浮云  阅读(71)  评论(0)    收藏  举报