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

第09章 继承和多态-课件(PPT-精).ppt

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

第09章 继承和多态 章节内容 9.1 引言 9.2父类和子类 9.3 使用super关键字 9.4 方法覆盖 9.5 覆盖和重载 9.6 对象类object和它的tostring方法 9.7 多态性、动态绑定和一般程序设计 9.8 对象转换和instanceof运算符 9.9 数组线性表ArrayList类 9.10自定义栈类 9.11 protected数据和方法 9.12 final类、方法和变量 9.1 引言 在面向对象中,从已有的类派生出新类,叫做继承。 超类=父类=基类 次类=子类=扩展类=派生类 Java中使用关键字extends来实现类的继承。例如: class Circle extends GeometricObject { 类体;} 创建了一个Circle类,它继承自GeometricObject类。 子类继承了父类所有的成员,还可以包含自己的数据成员和方法成员 9.2父类和子类 9.2父类和子类—父类GeometricObject 9.2父类和子类—子类Circle 9.2父类和子类 –子类Rectangle 9.2 父类和子类—TestCircle测试类 9.3 使用super关键字 super关键字的功能 调用父类的构造方法: super( ); super( 参数 ); 必须出现在子类构造方法的第一行 调用父类的方法: super.方法名(参数); return 2*super.findArea()+(2*getRadius()*Math.PI)*length; 9.3 使用super关键字 9.3.2 构造方法链 创建派生类对象时,要首先创建其中包含的基类子对象,也就是说在派生类的构造方法中,要首先调用基类的构造方法。 通常,派生类构造方法中的第一条语句都是使用关键字super调用基类的构造方法;如果没有使用关键字super显式地调用基类的构造方法,则编译器将向派生类构造方法中添加一条语句super(),调用基类默认的构造方法,它是派生类构造方法的第一条语句。 在任何情况下,构造一个类的实例时,将会沿着继承链调用所有基类的构造方法 Trace Execution Trace Execution Trace Execution Trace Execution Trace Execution Trace Execution Trace Execution Trace Execution Trace Execution 9.4 方法覆盖 当子类 从父类中继承方法,子类必须修改父类中定义的方法,就叫做方法覆盖(methord overriding) 9.6 对象类Object和它的toString()方法 如果定义一个类时,没有指明它的父类,则它的父类就是Object类。 Object中几个常用的实例方法: public String toString( ) public boolean equals(Object object) (见9.13) public Object clone( ) (见9.13) public int hashCode( ) (见9.13) public Class getClass( ) (见9.13) public String toString( ) 返回值代表一个该对象的字符串,默认情况下,返回一个由该对象所属的类名、@和该对象十六进制的散列码组成的字符串 一般而言,每个类继承toString需要对该函数进行重载,如GeometricObject类中的toString 修改如下: public String toString(){ return “color:” + color + “and is filled:” + filled; } 9.7 多态性、动态绑定和一般程序设计 对于需要父类类型的参数,总可以传入子类的实例;实现的那一种实现由java虚拟机在运行时动态决定,称为动态绑定或者多态性。 绑定机制如下:假设对象o是类c1,c2,…., Cn-1,Cn的实力,其中C1是C2的子类,C2是C3的子类,如果对象O调用一个方法p,JVM依次在类C1,C2,…,Cn-1,Cn中查找方法P,直到找到为止。一旦找到,停止查找并调用这个第一次的实现。 9.7 多态性、动态绑定和一般程序设计(实例9-5) 9.8 对象转换和instanceof运算符 原则:派生类对象可以复制给基类对象(向上转换),基类对象赋值给派生类对象时必须显式转换(向下转化) Object o = new Student() //隐式转换 Student b = o //error Student b = (Studen

文档评论(0)

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

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

1亿VIP精品文档

相关文档