Java语言程序设计第四章.ppt_第1页
Java语言程序设计第四章.ppt_第2页
Java语言程序设计第四章.ppt_第3页
Java语言程序设计第四章.ppt_第4页
Java语言程序设计第四章.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

Java面向对象程序设计 第4章 类的特性 本章主要内容 l理解父类与子类的继承关系 l理解继承中发生的方法重写 l重写Object类的toString( )方法 l使用super关键字访问父类成员 l访问修饰符的权限 l理解抽象类 l理解内部类 继承现象父 类 子类 父类/子类 是相对的 牛类狮子类老虎类 动物类 食肉动物类食草动物类 羊类 类的继承关系 哺乳动物类(父类) 公共属性和方法 私有属性和方法 狗类(子类) 继承属性 继承方法 新属性 新方法 猫类(子类) 继承属性 继承方法 新属性 新方法 老虎类(子类 ) 继承属性 继承方法 新属性 新方法 演示继承 类的继承关系 Mammal类 属性:legsNumber、height、weight、color 方法:breed( )等 Dog类 属性:legNumber等、hasTail 方法: breed( )等、keepHouse( )等 Cat类 属性:legNumber等 方法: breed( )等、climb( )等 继承的概念 l继承是体现了类与类之间的关系,在现有类的基础上 建立新类的处理过程称为继承。 l直接或间接被继承的类都是父类,子类继承父类的属 性和行为。父类也称超类或基类,子类也称派生类。 l子类复用父类的代码,同时也允许子类增加自己特有 的属性和方法。这样使得程序结构的设计更加清晰, 达到既减少程序的编码量,同时降低程序维护的工作 量。 l父类的私有属性与方法不传递给子类。 lJava不允许出现多重继承。 方法重写 l方法重写(overriding)是指在子类中存在与 父类完全相同的方法,则发生方法的覆盖,即 子类可以改写父类方法所实现的功能。 l自然界中,同一种行为具有不同实现方式的现 象很多。如:石墨与金刚石。 演示方法重写 方法重写 l发生在父类与子类中 l方法名称相同 l参数列表相同 l返回类型相同 l方法实现不同 l方法访问权限不能缩小,如:父类中被重写的 方法访问权限为public,子类重写方法时不能 缩小为private、protected或默认。 l子类重写方法不能抛出新的异常。 Object类 一切类的父类 lObject类存在与java.lang包中,因此当定义一 个新类而不指明其父类时,该类默认继承 Object类。 lObject类常用方法: boolean equals(Object obj) :指示其他某个对象是 否与此对象“相等”。 String toString( ) :返回该对象的字符串表示。 l 定义实体类时,通常要重写上述两个方法。 演示重写Object类的方法 继承中发生方法重写对构造方法的影响 l每个类都会有自己的构造方法,即使没有显示 定义,系统也会提供一个默认的无参构造方法 。 l构造方法名称与类名同名,因此父类与子类的 构造方法名称必然不同,不会发生方法重写。 演示继承时的构造方法 super关键字 l执行创建一个子类实例时, Cat cat = new Cat( ); l首先,调用执行父类的无参构造方法;然后调用 执行子类的无参构造方法。原因是子类构造方法 隐式了第一句代码super( ),即: public Cat() super( ); /运行子类的构造方法之前首先调用父类的构造方法 lsuper 关键字始终指向当前类的父类,可以使用 该关键字显式调用父类的有参构造方法或成员方 法。 演示继承时的构造方法 访问修饰符的权限 lprivate:访问权限仅限于类内。 lpublic:对外完全公开。 lprotected:同包或异包子类可以访问。 l无修饰符:限于同包能访问。 演示无修饰符和protected 成员内部类 l构造一个内部类对象必须先构造一个外部类对 象,然后通过外部类对象的引用“.new”构造内 部类对象。示例如下: Outer outer = new Outer( ); Outer.Inner in = outer.new Inner(); l在内部类中可以访问外部类的成员变量: O l成员内部类中不能有静态的变量。 演示成员内部类 局部内部类 l定义在外部类方法中的内部类称为局部内部类 ,不能使用访问修饰符。但是可以使用abstract 和final修饰符 l局部内部类的范围是在该方法内部。 l可以访问外部类的属性;还可以访问外部类的 有效的局部变量,但是要求这个局部变量必须 是final的。 演示局部内部类 内部类的作用 l内部类可以访问外部类的私有(private)成员。 l接口是公开的,把接口的实现类作为内部类隐 藏起来,强制用户通过接口来访问接口的实现 类,强制达到弱耦合性。 l配合接口实现多继承,这是使用内部类的主要 原因。 匿名内部类 l匿名内部类是一种特殊的局部内部类。 l用来继承一个类或者实现一个接口,而且只会 创建这个内部类的一个对象。 l可以出现在方法的返回类型中,也可以出现在 方法的参数中。 l不能定义构造方

温馨提示

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

评论

0/150

提交评论