- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
会计学;而把类中的其他成员隐藏起来,用户不能访问。继承是面向对象程序设计的一个重要特征,它是通过一个类派生子类来实现的,这种结构对充分利用已有的类来创建更复杂的类,实现代码的复用具有重要意义。多态是面向对象的程序中同名不同方法共存的现象,引入多态机制可以提高类的抽象度和封闭性,统一类的对外接口。通过本章的学习,读者将深入了解类的这些特性。;本章主要内容;5.1 消 息;消息的概念
消息就是向对象发出服务请求,是对数据成员和成员方法的引用。
消息的性质:
(1)同一对象可接收不同形式的多个消息,产生不同的响应。;(2)相同形式的消息可以发送给不同对象,所做出的响应可以是截然不同的。
(3)消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以对消息不予理会,对消息的响应并不是必须的。;公有消息和私有消息
对象之间的消息传递称为公有消息;而对象内部数据成员或成员方法之间的调用称为私有消息。
【例5.1】公有消息和私有消息示例。 ;5.2 继 承; 继承的概念
继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法。
继承避免了对一般类和特殊类之间共同特征进行的重复描述,运用继承原则使得系统模型比较简练也比较清晰。 ;父类与子类之间的关系如图所示: ;继承的特征
(1)继承关系是传递的。
(2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。
(3)提供软件复用功能。
(4)通过增强一致性来减少模块间的接口和界面,大大增加程序的易维护性。
(5)提供多继承机制。;继承的实现
在Java程序设计中,继承是通过extends关键字来实现的。在定义类时使用extends关键字指明新定义类的父类,新定义的类称为指定父类的子类,就在两个类之间建立了继承关系。这个新定义的子类可以从父类那里继承所有非private的属性和方法作为自己的成员。实际上,在定义一个类而不给出extends关键字及父类名时,默认这个类是系统类Object的子类。 ;1.数据成员的继承:子类可以继承父类的所有非私有的数据成员。
??例5.2】数据成员继承示例。
2.数据成员的隐藏 :在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员,即子类拥有了两个相同名字的数据成员,一个是继承父类的,另一个是自己定义的。;当子类引用这个同名的数据成员时,默认操作是引用它自己定义的数据成员,而把从父类那里继承来的数据成员“隐藏”起来。当子类要操作继承自父类的同名数据成员时,可使用关键字super引导。
【例5.3】数据成员隐藏示例。;3.成员方法的继承:子类可以继承父类的非私有成员方法。
【例5.4】成员方法继承示例。
4.成员方法的覆盖:子类可以重新定义与父类同名的成员方法,实现对父类方法的覆盖。方法的覆盖与数据成员的隐藏的不同之处在于:;子类隐藏父类的数据成员只是使之不可见,父类同名的数据成员在子类对象中仍然占有自己独立的内存空间;而子类方法对父类同名方法的覆盖将清除父类方法占用的内存,从而使父类方法在子类对象中不复存在。
【例5.5】成员方法覆盖示例。;this与super
1.this的使用场合。在一些容易混淆的场合,例如,成员方法的形参名与数据成员名相同,或者成员方法的局部变量名与数据成员名相同时,在方法内借助this来明确表示引用的是类的数据成员,而不是形参或局部变量,从而提高程序的可读性。 ;简单地说,this代表了当前对象的一个引用,可将其理解为对象的另一个名字,通过这个名字可以顺利地访问对象、修改对象的数据成员、调用对象的方法。归纳起来,this的使用场合有下述3种:;(1)用来访问当前对象的数据成员,其使用形式如下:
this.数据成员
(2)用来访问当前对象的成员方法,其使用形式如下:
this.成员方法(参数)
(3)当有重载的构造方法时,用来引用同类的其他构造方法,其使用形式如下:
this(参数);【例5.6】this使用示例。
【例5.7】使用this示例。
2.super的使用场合。super表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。
super的使用方法有3种:;(1)用来访问直接父类隐藏的数据成员,其使用形式如下:
super.数据成员
(2)用来调用直接父类中被覆盖的成员方法,其使用形式如下:
super.成员方法(参数)
(3)用来调用直接父类的构造方法,其使用形式如下:
super(参数)
【例5.8】super使用示例。;5.3 抽象类、接口和包;抽象类
假设要编写一个计算圆、三角形和矩形面积与周长的程序,若按前面所学的方式编程,必须定义4个类:圆类、三角形类、矩形类和使用前3个类的公共类,它们之间没
原创力文档


文档评论(0)