1.什么是接口
2.接口的定义
3.接口的特点
4.接口和内部类的比较
什么是接口:
硬件接口:两个硬件之间的链接方式,包括物理上的接口和逻辑上的数据传输协议.
软件接口:程序代码,特殊的类,表示一种规范,是N个方法的特征集合
接口只是定义了应当遵循的规范,不用关心具体的实现细节,在程序中表示规定了类中必须提供的方法.增强了可拓展性和可维护性.
面向接口编程
接口和实现类体现了真正的多态
接口 变量 = 创建的实现类对象
接口的定义和使用
定义:
多个抽象类的抽象就是接口
在java中最小的程序单元就是类,接口是一种特殊的类.接口表示一种规范,用于定义一组抽象方法,需要具备某一类事物的功能,并且实现类必须要实现接口提供的方法.
语法的定义:
类的语法:[public] class 类名{}
接口的语法:[public] interface 接口名{}
一般以:able/handler结尾,以:I开头.
存在的成员:
接口中没有构造器: 接口不能创建对象(不能new)
接口中定义的成员变量: 全局静态变量:public static final 修饰
接口中定义的方法: 公共的抽象方法:public abstract 修饰
接口定义的内部类: 公共的静态内部类:public static 修饰
其他接口的定义:
标志接口:接口中没有任何的成员,仅仅是一个接口(不推荐)
常量接口:用来封装多个常量,目的和常量类一致(不推荐)
接口的特点:
没有构造方法
只能继承接口,不能继承类,可以多继承
方法都是公共抽象的
字段都是全局静态常量
内部类都是公共静态的
接口的继承:
类和类之间用:extends
接口和接口之间用:extends
接口和实现类之间用:implements
接口的实现: 实现类
接口只是提供了共同的方法,并没有实现里面的内容,我们需要提供实现类来覆盖接口中的方法,实现接口中定义的功能.
接口和实现类是实现关系,为了方便也称之为特殊的继承关系,也就是说接口是实现类的父类.
接口和抽象类的对比
相同点:
都位于继承的顶端,用于被其他类继承
都不能实例化
都定义了抽象方法,其实现类必须覆盖方法
不同点:
接口没有构造方法,抽象类有构造方法
接口可以多继承,抽象类只能单继承
接口只能包含抽象方法,抽象类可以包含普通方法和抽象方法
接口的方法是公共抽象的,抽象类是包访问权限
接口的字段是全局静态的, 抽象类是包访问权限
接口的内部类是公共静态的, 抽象类是包访问权限