3slab Java讨论学习——抽象类与接口比较
来源:互联网 发布:淘宝怎么转零食店 编辑:程序博客网 时间:2024/06/07 06:54
2011年7月5日21:36:53,
3slab,
@author 3slab.mk;
二者相同点:
- 都不能被直接实例化,都可以通过继承实现其抽象方法。
(note:在匿名内部类中,出现了诸如
new XXXInterface()}{ ......}的形式,那么可以把它理解为一个特例吧。因为对于匿名内部类,实现它要求很特殊:仅需创建该类的一个实例,实现代码也比较短,类的定义与类使用紧凑等。
)
- 都是面向抽象编程的技术基础,实现了诸多的设计模式。
不同点:
- 接口支持多继承;抽象类不能实现多继承。
- 接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
- 接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
- 接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。
- 接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。
- 接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。
讨论中,根据BossRuan的口述做了下记录,一下为他总结的主要区别的来源以及对具体模块进行抽象类定义和接口定义时,二者的区别还是很明显的。该图仅为草图,首次使用Enterprise Architect绘图,没有按照严格的UML规范,仅仅用来示意,各位见谅,请看图:
几点说明:
- 图中“A Model for Example”是拿一个模块来举例,对于这个模块,其提供的接口以及抽象类的区别,在图中表现的比较明显;
- 区别的用途最终还是要归结到实际编程、应用中去,以后会根据本人的实际经验和搜集到的经典案例来加以说明;
- 欢迎发表评论,提出意见,将积极采纳,补充完善。
- 3slab Java讨论学习——抽象类与接口比较
- Java接口与抽象类的比较
- JAVA抽象类与接口的比较
- Java抽象类与接口比较
- Java学习——abstract抽象类与interface接口
- 抽象类与接口比较
- java学习——抽象类、接口
- java——抽象类与接口
- JAVA学习之:抽象类与接口
- Java接口与抽象类学习笔记
- Java学习之---抽象类与接口
- java学习之抽象类与接口
- java学习笔记----抽象类与接口
- java接口与抽象类学习总结
- 【Java学习笔记】3:抽象类与接口
- Java学习之抽象类和接口区别比较
- 抽象类与接口的比较(Java)
- Java 进阶 之 抽象类与接口 比较(二)
- 小方法
- .net和C#中部分技巧
- 定义科目组(新建法)
- Tomcat7.0源码编译
- 提取网页中的链接并生成xml
- 3slab Java讨论学习——抽象类与接口比较
- 没办法
- windows如何使用ssh登录ubuntu
- java关于线程简单介绍
- ATL 实现IObjectSafety 接口
- git学习二 创建工程
- 将天文数字转换成中文大写
- 解决访问不同的站点iframe应用session丢失(cookie丢失的问题)的问题
- XCode的时间