现在的位置: 首页 > 综合 > 正文

第九章 接口

2013年01月15日 ⁄ 综合 ⁄ 共 940字 ⁄ 字号 评论关闭

9.1  抽象类和抽象方法

1. 抽象方法 public abstract void f(); 仅有声明,没有方法体。

2. 包含抽象方法的类,叫抽象类,包括一个或多个抽象方法,该类必须限定为抽象的。

抽象类的导出类,必须为基类中所有abstract方法提供方法定义,如果不提供,导出类为抽象类。

 

9.2 接口

[1]   interface产生一个完全抽象的类,没有提供任何方法的具体实现,abstract类中可以有抽象和非抽象的方法。

[2]   interface关键字代替了class,添加public关键字,否则默认的是包访问权限。interface中可以定义域,隐式是final和static的。

[3]   类遵循某个特定接口,需要用implements关键字。

[4]   对于多态,无论是向上转型为Instrument的普通类、抽象类还是接口,都不会有问题。

 

9.3 完全解耦

将接口从具体实现中解耦使得接口可以应用于多种不同的具体实现,因此代码也就更具可复用性。

 

9.4 java中的多重继承

从非接口的类继承,只能继承一个基类。接口可以继承多个:

class Hero extends A implements B,C,D{ //… }

使用接口:能够向上转型为多个基类型,防止创建该类的对象。

对于什么时候使用抽象类,什么时候使用接口?(事实上,如果知道某个事物应该成为一个基类,第一选择应该是使它成为一个接口)

 

9.5 通过继承来扩展接口

[1]   interface 继承interface时,可以后面extends多个接口,类之间不可以。

[2]   在继承,组合使用时,方法的名称要避免相同,覆盖、实现、重载混合在一起容易出错。

 

9.6 适配接口

接口的优势:允许同一个接口具有多个不同的具体实现

通过使用interface关键字提供伪多重继承机制。

接口中的任何域(成员变量)都是final和static、public的。

 

9.8 嵌套接口

类中可以嵌套接口,可以是public和private的。在interface中内嵌接口时,默认只能是public的。在继承有嵌套的接口时,只需用实现该接口中方法即可,其内部的不需要实现。

9.9 接口与工厂

设计模式:工厂,这样代码将完全与接口的实现分离。

总觉得没有理解接口的一些本质,适配、工厂、解耦等。。。

抱歉!评论已关闭.