Java程序设计教程 -赵辉 第4章 深入面向对象程序设计.ppt

Java程序设计教程 -赵辉 第4章 深入面向对象程序设计.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象的程序设计方法力求符合人脑的思维方式,通过符合人类思维的更抽象的客观世界模型,降低、分解问题的难度和复杂性,并以此来解决问题。 继承的定义 在Java语言中,用extends关键字来表示一个类继承了另一个类,被继承的类称为父类、超类或基类,派生的新类称为子类。 例如: public class Sub extends Base{ … } 1.父类与子类 父类和子类的关系可以用自然语言描述为 : 子类is a父类。 [例4-1]子类继承父类 子类与父类的关系类似于家族关系,继承关系可以一直传递下去。 2.继承的限制 (1)子类和父类位于同一个包中 子类继承父类中public、protected和默认访问级别的成员变量和成员方法。 (2)子类和父类位于不同的包中 子类继承父类中public和protected访问级别的成员变量和成员方法。 [例4-2]继承的限制 3.类继承的原则 (1)子类只能有一个直接父类 (2)继承具有传递性 (3)继承不能循环 (4)除Object类外,所有类都有父类 属性隐藏 子类继承父类时,不需要重新定义父类中可以被继承的属性。 某些情况下,子类需要对从父类继承来的属性变量重新加以定义,使父类和子类的属性同名但不同值,这种机制称为属性的隐藏。 [例4-3]属性隐藏 方法覆盖 如果在子类中定义的一个方法,其名称、返回类型及参数定义正好与父类中某个方法的名称、返回类型及参数定义相同,则可以说,子类的方法覆盖了父类的方法。 方法的参数定义相同指方法中所有对应顺序的参数的类型相同,并且参数的个数相同。 【例4-4】方法的覆盖 方法覆盖的其他要求: (1)子类方法不能缩小父类方法的访问权限。 (2)子类方法不能抛出比父类方法更多的异常。 (3)方法覆盖只存在于子类和父类(包括直接父 类和间接父类)之间。 (4)父类的静态方法不能被子类覆盖为非静态方 法。 (5)子类可以定义与父类的静态方法同名的静态方 法,以便在子类中隐藏父类的静态方法 (6)父类的非静态方法不能被子类覆盖为静态方 法。 (7)父类的私有方法不能被子类覆盖。 super与this关键字 1.引用构造方法 在子类的构造方法中,可以使用super代表指定的某个父类的构造方法;使用this关键字可以代表同一类中不同的构造方法。 当调用子类的构造方法创建对象时,如果在子类的构造方法中没有显式的调用父类的构造方法,则super()方法将被自动调用。 【例4-5】super与this关键字 2.引用隐藏变量 在Java语言中,变量的隐藏有两种: 其一,子类成员变量和父类成员变量同名,父类变量隐藏; 其二,类的局部变量和类的成员变量同名,隐藏类的成员变量。 【例4-6】被覆盖变量的访问 3.引用覆盖方法 当子类的某个方法覆盖了父类的一个方法,可以通过super关键字访问父类的方法,而通过this关键字则可以访问当前类中的方法。 super关键字不能多重使用。例如,super.super()就是非法操作。 【例4-7】被覆盖方法的访问 Java语言的多态可以分编译时多态和运行时多态。 编译时多态又称为静态多态,主要体现为方法的动态重载; 运行时多态又称为为动态多态,主要体现为动态绑定。 方法重载 对于类的方法(包括从父类中继承的方法),如果有两个方法的方法名相同,但参数不一致,那么可以说,一个方法是另一个方法的重载方法。 参数不一致包括参数数目的不同,也包括参数顺序和参数类型的不同。 重载方法必须满足以下条件: (1)方法名相同。 (2)方法中对应的参数类型、个数至少有一项不相同。 (3)方法的返回类型可以不相同。 (4)方法的修饰符可以不相同。 在一个类中不允许定义两个方法名相同,并且参数定义也完全相同的方法。 [例4-8]方法重载的定义和使用 对象造型 把一个类的子类引用赋值给父类变量,称为向上造型。 例如: Student s = new GraduateStudent(); 把父类对象赋值给子

文档评论(0)

118压缩包课件库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档