一、引用类型
引用类型有三种:类,数组,接口。
二、接口的定义
1、接口是功能的集合,比抽象类更抽象,是数据类型,但不是类。
2、接口只描述所具备的方法,并没有具体实现,具体实现由接口实现类完成。
3、interface关键字
接口使用interface替代了原来的class关键字。其他步骤与类的定义相同。
三、接口中的成员变量和成员方法的定义
1、接口中的方法都是公共访问的抽象方法。不允许使用其他权限
2、接口中无法定义普通的成员变量。必须是常量比如 int a=1;其中a的值永远不变。
定义变量的格式为:
public static final 数据类型 变量名=值;
其中 final 关键字:是固定起来不准改的意思。
接口的成员变量被final修饰符修饰,说明:成员变量的值永远无法修改。但是,如图
也就是说final的定义可以省略不写。注意:
下图:绿色表示:public公共意思。S表示:static静态,F表示final。
上图是定义接口的格式。
定义抽象方法的固定格式:
public abstract 返回值类型 方法名(参数列表);
四、总结一下接口中的成员变量和成员方法的写法
如图所示:
五、接口的实现
接口的实现与继承很相似,只是关键字不同
实现的关键字是:implements
接口的实现类目的就是实现接口,并重写接口里的抽象方法。格式如下:
六、接口的成员
接口包含成员变量和成员方法。
1、接口的成员变量必须被public static final修饰。表示变量赋值后就固定不变的。
2、接口的成员方法必须被public abstracit修饰。并且没有方法主体。这和抽象类有很大区别,即抽象类可以有抽象方法,也可以有普通方法。
3、接口不可以创建对象,原因是:创建对象无法调用方法,无意义。不能实例化。
4、接口的实现类必须将接口的所有抽象方法实现完才行,否则该实现类是一个抽象类。
七、接口的多实现。
1、接口具有多实现功能,一个实现类可以同时实现多个接口,但是所有接口的方法必须都要实现。这和抽象类又不同。因为接口只有抽象方法,这些方法只能子类来实现。子类创建对象后只能调用子类方法实现。而抽象类还包含非抽象方法,会产生安全问题。
2、类可以在继承类的同时再实现多个接口。如图。
八、接口的多继承问题
接口与接口之间是继承关系。如图
注意:类和类之间是继承关系,类和接口之间是实现关系,接口和接口之间是继承关系。
九、接口和抽象类之间的区别
相同点:
1、都是在继承类的顶端,用于被其他类实现或继承。
2、都不能实例化对象。
3、都包含抽象方法,其子类必须重写这些方法。
不同点:
1、抽象类中含有部分实现方法,而接口只有抽象方法。
2、一个类只能继承一个父类,但是一个类可以实现多个接口。接口弥补了java的单继承。
3、抽象类是这个事物中应该具备的内容,继承体系是is......a的关系。
4、接口是这个事物中的额外内容继承体系属于like...a..的关系。
在选用时。