第五章 java语言的接口

2008-02-23 10:12:32来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

第五章 Java语言的接口

引子:在家中你能把电灯的插头拔掉,然后接上你的手提电脑.这是因为电灯和手提电脑都实现这插座的这个接口.

什么是接口?
一个java接口(Interface)是一些方法特征的集合,这些方法特征当然来自于具体方法,但是他们一般都是来自于一些在系统不断出现的方法,一个接口只有方法的特征.而没有方法的实现,因此这些方法在不同的地方被实现,可以具有完全不同的行为.在java语言中,java接口还可以用来定义public的常量.

为什么使用接口?
由于java语言是一个单继承的语言,一个类只能有一个超类.因此,在很多情况下,这个具体类可能已经有了一个超类,这时候要给他加上一个新的超类是不可能的,如果硬要的话,就只好把这个新的超类加到已有的超类上面,形成超超类的情况:如果这个超超类的位置也已经被占用了,就只好继续向上移动.直到移动到类等级结构的顶端.这样一来,对一个具体类的可插入性设计,就变成了对整个等级结构中的所有类的修改.

接口是对可插入性的保证.

关联的可插入性

当前对象并不在意所关联的是哪一个具体的类,而仅仅关心这个类是否实现了这个接口.

调用的可插入性

当需要调用其他类的方法时,这种调用不一定非得是某一个具体类,可以是一个接口.这样任何实现了这个接口的具体类都可以被当前对象调用.*跟关联的可插入性是一致的.

java接口常见的用法.

单方法接口

标示接口

如java.io.Serializable

常量接口

用来定义常量,只要实现这个接口就能直接调用常量,而不用这样使用(Utils.MAX)

第六章 专题:抽象类

什么是抽象类

抽象类仅提供一个类型的部分实现.抽象类可以有实例变量,以及一个或多个构造子.抽象类可以同时有抽象方法和具体方法.一个抽象类不能实例化,所以抽象类都是用来继承的.

Scott Meyers 曾指出 只要有可能,不要从具体类继承.

代码重构的建议

抽象类应当拥有尽可能多的共同代码.*也就是说:在一个从抽象类到多个具体类的继承关系中,共同的代码应当尽量的移到抽象类里.这对复用是有易的.

抽象类应当拥有尽可能少的数据*数据的移动方向是从抽象类到具体类.也即从继承的等级结构的高端向等级结构的地段移动.这样能保证节省内存资源.

针对抽象编程

什么时候才应当使用继承复用(一般建议使用接口)

1.子类是超类的一个特殊种类,而不是超类的一个角色,也就是要区分"Has-A"与"Is-A"两种关系的不同.Has-A使用聚合关系,Is-A使用继承关系.

2.永远不会出现需要将子类换成另一个类的子类的情况.

3.子类具有扩展超类的责任,而不是具有置换掉(OVERRIDE)或注销掉超类的责任.

4.只有在分类角度上有意义时,才可以使用继承,不要从工具类继承.

上一篇: JSF - Request Processing Lifecycle
下一篇: Java API之算法

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在java体系结构中集成Macromedia Flex(翻译)

下一篇:Java与XML(二)用java编写xml的读写程序