快速业务通道

Java编程那些事儿70——抽象类和接口(三) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

Java编程那些事儿70——抽象类和接口(三)

时间:2010-03-11 csdn 陈跃峰

8.9.3 抽象类和接口的比较

抽象类和接口都是进行面向对象设计时专用的设计结构,在实际进行项目设计时,经常需要考虑的问题就是——“使用抽象类还是接口”?下面通过对于抽象类和接口进行简单的比较,熟悉两者之间的区别和联系,从而在实际设计时使用恰当的结构。

1.什么时候使用抽象类或接口?

当设计中为了规范类中方法声明的结构(即类的行为)时,使用抽象类或接口。也就是强制子类对外部提供统一的方法声明时,使用抽象类或接口。

2.抽象类和接口的区别(不同点)

a)抽象类是类,而接口是接口。

因为抽象类是一个类,所以类内部可以包含的内容(构造方法、方法和属性等)在抽象类内部都可以存在,当然抽象类也受到类的单重继承的限制。而接口是接口类型,所以接口内部只能包含常量属性和抽象方法,但是一个类可以实现多个接口,所以接口不受类的单重继承的限制。

b)抽象类内部可以包含实体方法,而接口不能

抽象类是一个类,所以在抽象类内部既可以包含抽象方法也可以包含实体方法,而接口内部的每个方法都必须是抽象方法。

c)抽象类可以继承类,而接口不能

抽象类是一个类,所以在设计时可以使抽象类继承其它的类,在已有类的基础上进行设计,但是接口不能继承类。

3.抽象类和接口的联系(相同点)

a)抽象类和接口都可以声明对象,但是都只能使用子类的构造方法进行创建。

b)抽象类和接口内部都可以包含抽象方法。

按照Java语言的语法,子类在继承抽象类或实现接口时,都必须覆盖这些抽象方法,否则必须声明为抽象类。

c)抽象类和接口都可以代表一种类型,从而可以统一子类对象的类型,获得良好的可扩展性。

4.什么时候使用抽象类?

当满足以下的条件时,最好使用抽象类进行设计:

a)子类不继承其它父类

b)子类中存在完全相同的功能实现的方法

c)子类中存在相同的属性

d)设计出的结构需要继承其它类

当需要满足d条件时,只能使用抽象类,否则也可以考虑使用接口实现。

Java编程那些事儿70——抽象类和接口(三)(2)

时间:2010-03-11 csdn 陈跃峰

5.什么时候使用接口?

当满足以下的条件时,最好使用接口进行设计:

a)子类已经继承了其它父类

b)子类中不存在完全相同的功能实现方法

c)子类中不存在相同的属性

d)设计出的结构不需要继承其它类

当需要满足a条件时,只能使用接口,否则也可以考虑使用抽象类实现。

6.抽象类和接口的其它用途

a)禁止创建该类的对象时,可以把该类声明为抽象类。

b)当需要存储大量的常量数据,而这些常量数据将会在项目中的多个类之间使用时,可以使用接口。

c)当需要统一具有某种功能的类的对象时,可以使用接口。例如Serializable接口。

当然,只有经过大量的系统设计训练以后,才可以更加深刻的理解抽象类和接口的区别和联系,从而更加自如的进行选择。

另外,需要说明的是,不是每个项目中都必须使用抽象类或接口的。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号