2022年抽象类和接口区别用法 3.pdf
《2022年抽象类和接口区别用法 3.pdf》由会员分享,可在线阅读,更多相关《2022年抽象类和接口区别用法 3.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、引言一个软件设计的好坏在很大程度上取决于它的设计模式,而任何一个设计模式都是和抽象分不开的。从面向对象设计思想来看, 复用的重点应该是抽象层的复用,而不是具体某个代码块的复用。Java 抽象类和接 IEI 代表的就是抽象类型, 是我们需要提出的抽象层的具体表现。二者作为实现抽象层定义的两种重要机制具有很大的相似性,但在实际应用中又有本质的区别。1 抽象类与接口的概念l ,1 什么是抽象类在面向对象的概念中, 所有的对象都是通过类来描绘的,但并不是所有的类都是用来描绘对象的。 如果一个类中没有包含足够的信息来描绘一个具体的对象, 这样的类就是抽象类。 抽象类用来表示我对问题领域进行分析后得出的抽
2、象概念,是对一系列看上去不同、 但本质上相同的具体概念的抽象。 比如我们要开发一个管理乐器的软件,会发现问题领域存在着笛子、古筝等一些具体概念,它们是不同的,但都属于乐器,这里的乐器就是一个抽象概念。下面将乐器定义为抽象类:abstract class Instrument pub1ic abstract void play();public abstract void adjust() public String what() return Instrument ”I名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
3、 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 我们知道,类可以被实例化生成多个对象来使用,但抽象类不能被实例化,因为它包含了没有方法体只有方法声明的抽象方法。如上例中的 play() 和 adjust(),没有提供任何实现,因为每一种乐器的演奏和调节方式都是不同的, 所以这些方法的实现细节只能在具体乐器中体现。因此抽象类必须被继承, 其中的抽象方法是强制子类必须实现的。12 什么是接口(J av a编程思想中认为接口是纯的抽象类,即接口也是抽象的、不能被实例化的, 更重要的是接口中的方法都是抽象的,这些方法要到实现这个接口的类中去实现。 接口的本质是
4、在 classes 之间建立起一个协议,它只负责规定执行这个协议的类要实现哪几个方法,具体如何实现是由各个实现类自己决定的。下面通过一个例子来理解接口:interfaceNewCellPhone voidplayNetworkGame()l voidtakePicture()I 该接口为手机设计了2 个可供实现的方法:打游戏、照相,这2 个方法都是抽象的, 没有涉及特殊手机的任何细节,也没有涉及这些操作的具体实现。 若某一款手机希望具备这2 项功能,则该手机必需为这 2 个方法提供特定的实现机制。 总之,接口使我们只需要关心所要名师资料总结 - - -精品资料欢迎下载 - - - - - -
5、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 完成的功能,无需关心实现的细节。2 抽象类与接口的相同点抽象类和接口都位于继承树的上层,它们具有以下相同点:1) 都代表系统的抽象层。2) 都不能被实例化。3) 都包含抽象方法。现在有很多时论提倡用接口代替抽象类,两者从理论上可以做一般性的混用,但在实际应用中仍存在一定的区别。3 抽象类与接口的不同点31 从语法定义上区分抽象类由 abstract关键字来修饰,接口由 interface关键字来修饰。抽象类中除了有抽象方法外, 也可以有数据成员和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年抽象类和接口区别用法 2022 抽象 接口 区别 用法
限制150内