Java第5章继承与多态1.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 5 章 继承与多态 一、继承性与多态性的实现技术 类是用来描述具有相同属性和行为对象集合的工具。任何一个类别的对象都不是独立存在于客观世界上的,因此类与类之间必定存在着某些关系,概括起来有下列三种: 关联关系 聚合关系 泛化关系 关联关系 关联是指两个或多个类之间的一种特定关系,它描述了各个类对象之间相互依赖的关系。最常见的关联是两个类之间的关联,即二元关联。 聚合关系 顾名思义,聚合是将多个类聚集在一起的意思。 聚合的方式有如下几种: 包含关系(has a) 组成关系(part of) 所属关系(owns) 雇佣关系(employed_by) 泛化关系 泛化描述了两个类之间的“一般-特殊”关系。 可以使用“Is a”进行检测。 继承机制是实现软件可重用的基石,是提高软件系统的可扩展性和可维护性的主要途径。所谓继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用。 在Java语言中,通过定义子类支持继承性。 多态性是面向对象程序设计的一个核心概念,它有助于增加软件系统的可扩展性、自然性和可维护性。所谓多态是指不同的类对象收到同一个消息可以产生完全不同的响应效果的现象。利用多态机制,用户可以发送一个通用的消息给各个类对象,而实现细节由接收对象自行决定,这样,同一个消息可能会导致调用不同的方法。 在Java语言中,主要利用子类覆盖父类的成员方法的方式支持多态性。 二、类的继承 在 Java 中,类是一个层次结构,其中有一个被称为Object的特殊超类,所有的类都是Object直接或间接的子类。 子类继承父类的数据成员和成员方法,同时也可以更改父类的数据成员或重载父类的成员方法,以及在父类的基础上添加新的数据成员和成员方法。因此,父类和子类 之间反映的是“一般与特殊”的关系 应用继承的主要场合 反映类之间的泛化,即“一般-特殊”关系 子类的定义格式 [修饰符] 子类名称 extends 父类名称 { 子类体; } 《注意》 没有extends,默认父类为Object 只能有一个父类,即单继承 子类继承父类中除private部分的全部内容 类继承具有传递性 class B { int b1 = 1; public int b2 = 2; protected int b3 = 3; private int b4 = 4; ? int getb4( ) { return b4; } } class A extends B { int a = 5; ? int sum( ) { return b1 + b2 + b3 + getb4( ) + a ; } } class ClassInheritance { public static void main(String args[ ]) { B bb = new B( ); System.out.println(B: +bb.b1+ +bb.b2+ +bb.b3+ +bb.getb4( )); A aa = new A( ); System.out.println(A: +aa.b1+ +aa.b2+ +aa.b3+ +aa.getb4( ) + +aa.a + + aa.sum( ) ); } } class B { int b1 = 1; public int b2 = 2; protected int b3 = 3; private int b4 = 4; ? int getb4( ) { return b4; } void setb4( int i ) { b4 = i; } } class A extends B { int a = 5; }? class CPP { public static void main(String arg[ ]) { C cc = new C( ); System.out.println(C: +cc.b1+ +cc.b2+ + cc.b3+ +cc.getb4( ) + +cc.a+ +cc.c); cc.change( 15 ); System.out.println(C: +cc.b1+

文档评论(0)

yan666888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档