网站大量收购闲置独家精品文档,联系QQ:2885784924

09第9章继承和多态.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
09第9章继承和多态ppt课件

Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved. 0-13-148952-6 第8章 继承和多态 学习目标 利用继承性由父类创建子类 (§8.2). 使用super关键字调用父类的构造方法和方法 (§8.3). 在子类中覆盖方法 (§8.4). 熟悉Object类中的几个有用的方法 (equals(Object), hashCode(), toString(), finalize(), clone(), and getClass()) (§8.5, §8.11 Optional). 理解多态、动态绑定和一般程序设计 (§8.6). 描述转换并理解显示向下转换的必要性 (§8.7). 理解隐藏数据域和静态方法的作用 (§8.8 Optional). 使用修饰符protected限制对数据和方法的访问 (§8.9). 使用修饰符final声明常量、不可修改的方法和不可扩展的类 (§8.10). 8.2 父类和子类 // Cylinder.java: Cylinder类的定义描述 public class Cylinder extends Circle { private double length = 1; ? /** Return length */ public double getLength() { return length; } ? /** Set length */ public void setLength(double length) { this.length = length; } ? /** 计算体积 */ public double findVolume() { return findArea() * length; } } Cylinder cylinder = new Cylinder(); System.out.println(The length is + cylinder.getLength()); System.out.println(The radius is + cylinder.getRadius()); System.out.println(The volume of the cylinder is + cylinder.findVolume()); System.out.println(The area of the circle is + cylinder.findArea()); 8.3使用关键字 super 调用父类的构造方法 调用父类的方法 注意 8.3.2 构造方法链 8.3.2 构造方法链 追踪执行过程 追踪执行过程 追踪执行过程 追踪执行过程 追踪执行过程 追踪执行过程 追踪执行过程 追踪执行过程 追踪执行过程 没有无参构造方法的示例 声明一个子类 子类可以扩展父类的方法和属性,所以可以在子类中: 添加新的属性 添加新的方法 重写父类的方法 8.4 方法覆盖 注 对象类 Object Java中的每一个类都源于 java.lang.Object class. 如果没有指定一个类继承谁,它的父类就是Object. equals() 和 hashCode() Methods equals() 方法检查2个对象是否. equals()和==比较 hashCode() 返回该对象的哈希码,返回对象在计算机内部存储的十六进制内存地址. toString() 方法 toString() 方法返回一个代表该对象的字符串:类名+ @+哈希码. 多态性、动态绑定和一般程序设计 GraduateStudent, Student, Person, and Object 每个类都有自己的toString()方法,采用哪一种实现有JVM在运行时动态决定,这种能力成为动态绑定。 一般程序设计 多态性一般允许方法使用范围更广的对象参数,这称为一般程序设计。 如果一个方法的参数类型是父类,可以向该方法传递这个参数子类的任何对象。 8.7 对象类型转换 语句 m(new Student()); 将对象 new Student() 传递给了 Object 类型参数. 该语句等价于: Object o = new Student(); // Implicit casting m(o); 为什要转换 假设: Student b = o; ? 因为Student对象的总是Object对象的实例,但是Object对象的

文档评论(0)

xyz118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档