第4章 深入向对象的程序设计.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文档。上传文档
查看更多
第4章 深入向对象的程序设计

第4章 深入面向对象的程序设计 4.1 Java的继承与多态 4.2 构造函数的继承与重载 4.3 Java的包 4.4 Java的接口 4.5 Java的异常处理 学习提要 1.熟练掌握继承关系的定义、属性的继承和隐藏、方法的继承与覆盖; 2.理解多态的含义和用法,包括方法的重载、构造函数的继承与重载、this与super、父类对象与子类对象的使用和转化; 3.掌握包的定义与使用方法; 4.熟悉接口与多重继承的关系、接口的定义和使用; 5.掌握异常的定义和使用方法。 4.1 Java的继承与多态 4.1.1 继承与多态的概念 (1)继承 继承是两个类(或接口)之间的一种关系,通过extends关键字来实现,被继承的类称为父类或超类,继承了父类的所有数据和操作的类称为子类。新定义的子类可以从父类继承所有非private的属性和方法作为自己的成员。一个父类可以同时拥有多个子类。 单重继承:任何一个类都只有一个单一的父类。 程序结构为树状,比较简单。 多重继承:一个类可以有一个以上的父类,其静态的 数据属性和操作从所有这些父类中继承。 程序结构为网状,比较复杂。 图 4.1 各种电话卡类及其间的继承关系 在面向对象的程序设计中,采用继承的机制来组织、设计系统中的类的优点: 可以提高程序的抽象程度,使之更接近于人类的思维方式; 使得程序结构清晰,降低编码和维护的工作量。 注意: (1)Java只支持单重继承,而采用接口来实现多重继承。 class subClass extends SuperClass implements interface1,interface2,…interfacen{//SuperClass和各个接口中的非private的属性和方法均被继承(实现)!} (2)而C++中一个类可以有多个父类。 (2)多态 多态是针对方法而言的,是指同名的方法具有多种表现形态。 实现多态的途径: 1)覆盖( override )——在子类中对从父类继承的方法进行改写。 2)重载( overload )——在同一个类中定义多个同名的方法。 比如,程序中定义多个名为 print方法,用来打印不同类型的数据,如字符型、数值型等。 区分同名方法的措施:采用不同的形式参数列表,包括形式参数的个数、类型、顺序的不同。 4.1.2 属性的继承与隐藏 (1)属性的继承:子类从父类继承属性而不是把父类属性的定义部分复制一遍,可以减少程序维护的工作量。 (2)属性的隐藏:对子类从父类继承来的属性变量重新加以定义。 即:子类定义了与父类同名的属性变量,即出现了子类变量对同名父类变量的隐藏。 如何区分: 子类执行从父类所继承的方法时,处理的是继承自父类的变量。 子类执行它自己定义的方法时,操作的是自己定义的变量,而把从父类继承的变量“隐藏”起来。 子类覆盖父类的方法时,要注意不能降低父类方法的访问权限!!!!!!! (1) class SuperClass {public void method1(){ } void method2(){ } } class SubClass extends SuperClass { void method1(){ } //降低了访问权限,不允许! public void method2() {} //提升了访问权限,允许! String toString() { return ““Hello,World!”; } //不允许! } 同一个类中方法重载时,要注意参数的类型、顺序、个数要体现不同!!!!!! 请分析以下程序段中的错误原因。 import java.util.*; class JustInOneClass { public void output(String str) {} public void output(Date date) {} public void output(Double d) {} public void output(int i) {} public void output(int j) {} public void output(float f) {} } 例: TestInherit.java //类的继承,属性的继承与隐藏 import java.util.*; public class TestInherit {

文档评论(0)

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

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

1亿VIP精品文档

相关文档