1.为什么需要接口
Java中的类只支持单继承,即一个子类只能有一个父类。子类会具有父类的通用特征;
那么,如果我们希望在一个类中能够同时兼容多个不同类型的特征?
如果我们要求,不同的类型在他们无法拥有共同父类的前提下,仍然要包含有相同的特征?
此时,代码应该如何编写?
如:手机,和智能手表都能打电话和发短信,但很难将二者抽取一个公共的父类。因为手机和手表的功能是相互交叉、互有一同的。
但是,手机和手表之间又有相似的行为,由此可以引出接口,通过接口来建立这些相似行为之间的联系。
2.接口实现
接口中的方法,不能有方法体。(注意,这儿没有使用abstract,没有报错)
一个类实现一个接口使用:implements关键字;如下定义的Camera相机类
报错发现:一个类实现一个接口的时候,需要实现接口中的方法。
一个类可以同时继承一个类,和实现接口。如下定义的FourthPhone手机类
测试:
注:如上,IPhoto ip = new FourthPhoto();接口引用指向实现类时,该ip只能调用接口中的方法,而不能调用FourthPhoto()类中自己定义的方法。
即由此可以感觉到,我们可以通过接口来描述不同的类型具有相似的行为特征,从而建立关系之后,以接口引用指向实现类的方式来描述 不同的类型对于接口的行为的具体表现。(即,接口仅倾向于不同类之间的共性)