Java 2实用教程(第五版)第六章复习——接口与实现

1 接口

接口在结构上与抽象类有些相似,接口之间也可以继承,每个接口经编译后为独立的字节码文件。

但接口内部只能包含公有静态常量和公有抽象实例方法

在Java接口中,编译器将常量的定义默认为public static final类型的静态常量,不论是否使用了这些修饰符,它都是这样处理的。

所以在定义常量时,可以只给出其数据类型说明和常量名,同时,定义时要为每个常量都赋值。因为成员方法都是抽象的,在定义成员方法时也可以省略关键字abstract,它默认也是抽象的

2 接口与接口之间的继承

接口和类一样,也可以继承。不过,类仅支持单继承,而接口既

支持单继承,也支持多重继承。通过继承,一个接口可以继承父接口

中的所有成员。接口之间的继承也是通过关键字extends来说明的。

接口的多继承示例:

public interface SubMathInterface

extends MathInterface, PhysicalInterface{

double minuteToRadian();//分转换为弧度

double RadianToMinute();//弧度转换为分

double secondToRadian();//秒转换为弧度

double radianToSecond();//弧度转换为秒

}

通过继承,在子接口SubMathInterface中不仅有此处定义的四个方

法,而且也继承了父接口MathInterfacePhysicalInterface中的所

有常量和方法

3 类与接口之间的继承

Java中,要让接口发挥其功能,需定义一个普通的类,在这个类

要覆盖掉接口中的所有方法,以便将其实现,称为该类对接口的实现

实现接口是通过关键字implements来说明的。

注意:定义一个类来实现接口时,需要在类中覆盖掉接口中的所有方法,

不能有选择地实现其中的某些方法,否则只能将这个类定义成一个抽象

类。(教材P146-148例子1及相应的UML

4 抽象类与接口的比较

数据域区别:在接口中只能定义常量;抽象类的数据域则既可定义常量、也可定义变量。

方法的区别:接口中的方法必须是公有抽象的实例方法,没有其它类型的方法(包括构造方法也不存在);抽象类中的方法没有限制(存在构造方法,但不能用其实例化对象),但其抽象方法必须是可访问的抽象实例方法。

继承的区别:接口之间可以存在多重继承,接口不能继承类;类之间只能单重继承,并且可以实现多个接口。


版权声明:本文为m0_52842652原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。