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

 时间:2024-10-13 04:37:10

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

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

2、Product类声明了该出版机构产品的共同属性名称、价格、作者、摘要,并定义了输出产品属性的方法outProduct()。但该类并没有完全实现任务要求,因为该类的属性并没有全部反映出该出版机构所有产品的属性,如纸质图书、电子图书、视频、音频产品的个性化属性。如何解决这个问题呢,有两种解决方案,一种解决方案是每类产品都创建为一个类,该类包含该产品的所有属性,即分别创建纸质图书类、电子图书类、视频类和音频类,鉴于篇幅关系下面仅给出纸质图书类的代码

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

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

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

4、在Java中子类继承父类是通过extends关键字来实现继承的。下面给出电子图书类、视频类的子类代码,其它子类代码请自行创建:电子图书类代码

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

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

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

6、视频类代码的结构同电子图书类代码结构相同,这里就不作解释了。细心的同学可能会发现EBook类和Vi颊俄岿髭deo类也具有共同的属性formation和filesize,可以把formation和filesize提取出来抽象为一个新的电子出版物类,电子图书类、视频类、音频类继承电子出版物类,电子出版物类又继承于产品类,从而构成产品类的层次结构,产品类层次结构如下图所示类的层次结构充分体现了面向对象编程的继承思想,高度抽象出的事物(Product类)再不断细化为接近现实的事物(PaperBook类和EProduct类),EProduct类又可以细化为具体事物(EBook、Video、Audio类),层层继承,高度复用了已有代码。面向对象的继承思想是也是一种系统设计思想,系统从高度抽象入手构建基础抽象类,基础抽象类满足系统所有类的基本属性和操作要求。所有系统类均继承于基础抽象类,继承的系统类又可以被更具体化的子类继承,从而构成了系统的类层次结构。Java语言的Objec类就是一个基础抽象类,Java所有的类都继承于Objec类,JDK就是一个很好的类层次结构例子。

深入理解面向对象的继承思想
  • 支付宝怎么取消滴滴出行免密支付
  • 农资记账免费软件“店管家”下载方法
  • mac电脑怎么设置允许备忘录发送通知?
  • awm文件是什么?
  • mac允许打开不能确认身份应用软件的方法
  • 热门搜索
    少先队建队日手抄报 母亲节手抄报的内容 我爱祖国手抄报内容 儿童节手抄报内容 2020鼠年手抄报 手抄报模板大全 诚信手抄报图片大全 宪法手抄报大全一等奖 抗击冠状病毒手抄报 手抄报版面设计图花边