深入理解面向对象的继承思想

2025-05-09 15:57:44

1、继承是面向对象设计的重要思想,其核心是代码的复用和程序功能高度的扩展性。继承在词诽粘辔凉典中的解释是把前人的知识、文化、思想、财产、知识等接受过来。在面向对象中,继承是对类而言的,新类可以继承已有类的属性和方法,这样做的好处是新类可以复用原有类所有的代码,复用的同时又可以定义新的方法和属性来扩展原有类的功能。为了理解继承思想,下面看一个案例。某出版机构准备要通过微信小程序实现产品在微信媒体的推广和销售,出版机构的产品包括图书、音频、视频,图书又分为纸书和电子书。现在需要设计产品类,该类能够存储出版社所有产品的属性(如名称、价格、作者、摘要等产品信息),并能输出产品的属性。由案例内容分析可知,该出版机构有纸质图书、电子图书、音频、视频产品,每类产品既有共同属性,如名称、价格、作者、摘要等属性,也有个性化属性,如纸质图书有字数、页数等属性,视频有分辨率、播放时长、文件大小、编码等属性,音频有采样频率、文件大小、编码等属性,电子图书有格式、文件大小等属性。前面我们学过抽象和封装,可以把同类事物的共同属性抽取出来形成类,既然该出版机构的纸质图书、电子图书、视频、音频产品都具有共同属性名称、价格、作者、摘要,可以创建一个Product产品类,代码如下

深入理解面向对象的继承思想

3、例子代码仅给出了纸质图书类的代码,电子图书类、视频类和音频类可参照纸质图书类代码创建。这样创建的代码也可以完成案例任务要求,问题是创建的四个产品类中都有重复的属性和方法,代码重复,不符合面向对象的设计原则。另外一种解决方案就是采用Java的类继承机制,利用Java的类继承机制可以让纸质图书类,电子图书类、视频类和音频类均继承于Product类,被继承的Product称为父类,继承的纸质图书类,电子图书类、视频类和音频类称为子类,子类继承父类的所有属性和方法,同时子类可以声明自己特有的属性和方法。下图给出了出版机构的产品类继承图。

深入理解面向对象的继承思想

5、EBook类是Product类的子类,继承了Product类的全部属性和方法,也包括构造方法,Product类是EBook类的父类。程序创建Ebook对象时,需用super关键字调用父类的构造函数以初始化父类的数据,super关键字主要用于指向子类对象中的父类对象。视频类代码

深入理解面向对象的继承思想
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢