教材学习内容总结
本周学习内容:第六章:接口与实现。
一、接口
1、接口是为了克服java单继承的缺点,一个类可以实现多个接口。
2、接口的声明:使用关键字interface。
3、接口体中包含常量的声明(没有变量)和抽象方法(没有普通的方法、访问权限一定都是public)两部分;常量的访问权限一定是public,而且是static常量。
二、实现接口
1、类实现接口:一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口。如果实现多个接口,用都好隔开接口名。
例如:Animal的Dog子类实现了Eatable和Sleepable接口
class Dog extends Animal implements Eatable,Sleepable
2、重写接口中的方法:去掉abstract修饰符、给出方法体,而且方法的访问权限一定要明显地用public来修饰(否则就降低了访问权限,这是不允许的)。
3、若一个类生声明实现一个接口,但没有重写接口中所有的方法,则该类一定是抽象类,即抽象类既可以重写接口中的方法,也可以直接拥有接口中的方法。
4、若定义接口时,关键字interface前面加上public,则该接口可以被任何一个类实现;
若一个接口不加public修饰,则称作友好接口,可以被与该接口在同一个包中的类实现。
5、接口也可以被继承,使用关键字extends声明。
三、接口的UML图
![](https://i-blog.csdnimg.cn/blog_migrate/618d70b15da267b89427f89a2bbac510.png)
四、接口回调
1、假如Com是一个接口,则 可以用Com声明一个变量:
Com com;
2、接口回调是指:可以吧实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,则该接口变量就可以调用被类实现的接口方法。
3、接口无法调用类中其他的非接口方法。
五、abstract类与接口的比较
1、两者都可以有abstract方法。
2、接口只可以有常量,不可以有变量;而abstract类的即可以有常量,也可以由变量。
3、abstract类中也可以由非abstract方法,接口不可以。
参考资料
-
Java 2 实用教程(第5版)