继承_多态_接口和内隐类.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
继承_多态_接口和内隐类.ppt

第7章 继承、多态、接口与内隐类 引言 §7.1 用继承定义类 §7.2 利用多态高效地使用类 §7.3 继承和成员的可访问性 §7.4 继承和构造函数 §7.5 抽象类和抽象方法 §7.6 继承的合理使用 §7.7 接口(Interface) §7.8 内隐类(Inner Class) 引言 §7.1 用继承定义类 · 一个类和其它类之间的关系: 不相关;(表示应用中的两个完全不同的概念) 相关。 (所表示的概念在某些方面是相关的) · 二个相关的类的表现形式: 有一些共享的数据及行为特征。 · 二个相关的类的定义方式之一 向上将共同的抽象到父类中,其差异用子类实现。 · 关于继承 --继承用来表达类之间的层次关系; --另外可从类的层次关系中导出类的更大的能量; --一般而言,子类(Subclass)扩展了其超类(Superclass) §7.1 用继承定义类 --利用继承机制,可大大提高程序的可重用性及维护性。 Ex. Student类和Undergraduate、Graduate类的关系。 §7.2 利用多态高效地使用类 · 多态(Polymorphism)——一种事物有多于一种的形态. · 有了继承,子类继承了父类的所有特征,即继承了父类的数据成员和方法. · 故当类有继承关系时,Subclass的对象和Superclass的对象的类型一样,都是Superclass;但Superclass的对象类型非Subclass。 此时,我们说,subclass的对象是多态的,即它既是subclass类的对象,亦为superclass类的对象. §7.2 利用多态高效地使用类 · 为什么需要多态(Polymorphism) ? §7.2 利用多态高效地使用类 Ex. 设计一个系学生花名册 方案1: GraduateStudent[] gradRoster; UndergraduateStudent[] undergradRoster; 方案2: Student[] roster; //利用继承特性 §7.3 继承和成员的可访问性 · 子类对父类的继承 --子类继承了父类的所有成员(数据成员及方法,但private成员不可见)。 --子类对象的数据成员为:父类的数据成员+子类的所有数据成员(贴接关系)。 --protected只有在继承关系中才有意义。 · 父类成员的可见度 §7.3 继承和成员的可访问性 1). 其它类对Super、Sub类成员的能见度 §7.3 继承和成员的可访问性 1). 其它类对Super、Sub类成员的能见度 · 一个类的private成员,只能被本类的方法访问,外部不可见; · 一个类的protected成员,只能被本(包)类的方法访问或子类的方法访问,其它 包中的类不可见。 §7.3 继承和成员的可访问性 2). Sub类对父类成员的能见度 除父类的private成员外,父类的其它成员子类均可见。 3). 同类对象的能见度一致 §7.3 继承和成员的可访问性 3). 同类对象的能见度一致 §7.3 继承和成员的可访问性 4). 子类和父类非同类(相对于父类而言) · 若两个对象属于不同的类,那么只有一个对象的公共成员能够被另一个对象访 问,而并不关心一个类是否是另一个类的子类。 §7.4 继承和构造函数 · 子类继承了父类的所有成员(数据成员及方法),但父类的构造函数 不能继承(过载或重置)。 · 故,子类必须定义自己的构造函数,或使用编译器添加的缺省的 构造函数。 §7.4 继承和构造函数 · 若在一个类中已定义了自己的构造函数,则编译器不再添加缺省 的构造函数。 §7.4 继承和构造函数 · 子类构造函数的设计应遵循如下原则: 1. 如一个类的父类不是Object类,那么这个类的构造函数应明确 地调用父类的构造函数; 2. 总是为自己定义的每一个类提供一个构造函数,不要指望缺省 的构造函数。 切记: 一般而言,缺省的构造函数不具有实际意义。父类构造函数是对 父类数据成员进行初始化,子类构造函数对子类

文档评论(0)

youyang99 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档