Java2教程ppt第七章.ppt_第1页
Java2教程ppt第七章.ppt_第2页
Java2教程ppt第七章.ppt_第3页
Java2教程ppt第七章.ppt_第4页
Java2教程ppt第七章.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java 2 实用教程,Java 2: A Beginners Guide,甘朝华,第七章 继承, 理解继承的基础知识 调用超类构造函数 使用super访问超类成员 创建多级类层次结构 了解何时调用构造函数 理解子类对象的超类引用 重写方法 使用重写方法实现动态方法分配 使用抽象类 使用final 了解Object类,继承是面向对象程序设计的三个基本原则之一,它允许创建类层次结构。 Java语言中,被继承的类称为超类,继承类称为子类。,7.1 继承的基础知识,Java通过允许在一个类的声明中加入另一个类来实现继承,这需要使用关键字extends。,class TwoDShape double

2、width; double height; void showDim() / ,7.1 继承的基础知识,class Triangle extends TwoDShape String style; double area( ) return width * height / 2; void showStyle() / ,7.1 继承的基础知识,成员访问与继承: private声明的成员:继承不会超越private的访问限制。 protected声明,7.2 构造函数和继承,在层次结构中,超类和子类都可以有自己的构造函数。 超类构造函数 - 子类构造函数 使用super调用超类构造函数: sup

3、er( parameter-list ); /必须是在子类中第一个执行语句。 ?执行的是超类的哪一个构造函数?,7.3 使用super访问超类成员,super的第二种形式的工作方式与this相似,只不过它饮用的是子类的超类。 super.member member是方法或实例变量,当子类的成员名隐藏了超类的成员名时使用。 练习7-1 扩展Vehicle类,7.4 创建多级层次结构,可以创建任意多层继承组成的层次结构。,TwoDShape,Triangle,ColorTriangle,7.5 何时调用构造函数,按照继承的顺序:超类子类,7.6 超类引用和子类对象,Java是一种类型严格的语言。除

4、了标准转换和应用于简单类型的自动转换外,类型兼容是被严格执行的。 class X / class Y / X x = new X(); Y y = new Y(); X x2 = x;/合法 x2 = y;/非法,7.6 超类引用和子类对象,class X / class Y extends X / X x = new X(); Y y = new Y(); X x2 = x;/合法 x2 = y;/合法,7.6 超类引用和子类对象,超类指针的访问权限: 它能访问子类的成员吗?,7.7 方法重写,在类层次结构中,当子类中的方法与其超类中的方法同名且类型一致(函数签名相同)时,那么就称子类中的方

5、法重写(override)了超类中的方法。 在一个子类中调用被重写方法时,它总是引用子类中定义的方法,而超类中定义的方法将被隐藏。,7.8 重写的方法支持多态性,方法重写构成了Java最强大的概念之一:动态方法分配(dynamic method dispatch)。 动态方法分配是一种机制,通过该机制对一个被重写方法的调用会在运行期解决,而不是在编译期解决。 演示 多态运行期调用,7.8 重写的方法支持多态性,1、为何使用重写的方法 使得Java支持运行时多态性。 是面向对象程序设计的特性之一。 2、在TwoDShape中应用方法重写 讲解 例题,7.9 使用抽象类,抽象类只定义为所有子类共享

6、的一般形式,至于细节则交给每一个子类去填充实现。 接口(Interface) 抽象方法(abstract method) 通过abstract类型修饰符来创建 abstract type name( parameter-list ); abstract不能用于static方法或构造函数。 包含一个或多个抽象方法的类必须通过在其class声明前添加abstract修饰符将其声明为抽象类。,7.10 使用final,用于阻止方法重写和继承。,7.10 使用final,1、使用final防止重写 class A final void meth( ) / class B extends A void meth( ) /Error / ,7.10 使用final,2、使用final防止继承 final class A / class B extends A /Error / ,7.10 使用final,3、数据成员使用final 值在程序的生命期中不能改变。 class ErrorMsg final int OUTERR = 0; final int INERR = 1; final int DISKERR = 2; fina

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论