第五章 java语言的接口
2008-02-23 10:12:32来源:互联网 阅读 ()
第五章 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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash