第8章接口、继承和多态.ppt

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

8.2 类的继承 8.2.1 继承的实现 8.2.2 继承中的重写 8.2.3 使用super关键字 8.2.1 继承的实现 继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用。 Java中只允许每个子类拥有一个直接父类,即单继承。 在Java语言中,继承通过关键字extends来实现。即在子类的声明中,通过使用关键字extends来显式的指明其父类。 8.2.1 继承的实现 其基本的语法格式如下: [修饰符] class 子类名 extends 父类名{ 类体 } 子类可以继承父类的所有非私有成员变量和成员方法。 8.2.1 继承的实现 【例8-3】 创建Bird类,定义一个成员变量描述颜色。创建Pigeon类,它继承了Bird类。在构造方法中,对继承的color变量赋值。 8.2.1 继承的实现 成员的继承 子类可以自行声明新的成员变量 子类可以声明新的成员方法 子类可以声明与父类具有相同签名的成员方法,即方法的重写。 子类可以声明与父类中同名方法的重载方法。 8.2.2 继承中的重写 重写是指父子类之间的关系,当子类继承父类中所有可能被子类访问的成员方法时,如果子类的方法名与父类的方法名相同,那么子类就不能继承父类的方法,此时,称为子类的方法重写了父类的方法。 重写体现了子类补充或者改变父类方法的能力。通过重写,可以使一个方法在不同的子类中表现出不同的行为。 8.2.3 使用super关键字 子类可以继承父类的非私有成员变量和成员方法。 但若子类中声明的成员变量与父类的成员变量同名,则子类的成员变量隐藏了父类的成员变量。 若子类中声明的成员方法与父类的成员方法同名,并且方法的返回值类型、参数个数和类型也完全相同,则子类的成员方法重写了父类的成员方法。 8.2.3 使用super关键字 若想在子类中访问父类中被隐藏的成员变量和被重写的成员方法,可以使用super关键字来操作。 super关键字主要有以下两种用途。 1. 调用父类的构造方法 若要创建子类对象时希望对从父类继承的成员变量初始化,需在子类的构造方法中利用super调用父类的构造方法。 8.2.3 使用super关键字 1. 调用父类的构造方法 构造格式: super([参数列表]); 利用super调用父类构造方法的语句必须作为子类构造方法中的第一条语句。 若第一条语句不是调用父类构造方法的语句,系统会自动插入一条调用父类默认构造方法的语句,如果父类没有不带参数的构造方法,则会出现编译错误。 8.2.3 使用super关键字 super关键字主要有以下两种用途。 2. 操作被隐藏的成员变量和被重写的成员方法 具体格式: super.成员变量名 super.成员方法名([参数列表]) 8.3 多态 对于同一个消息,不同类的对象可以作出不同的反应被称为多态性。 在Java中,通常使用方法的重载(Overloading)和重写(Overriding)实现类的多态性。 方法的重载是指在一个类中,出现多个方法名相同,但参数个数或参数类型不同的方法,则称为方法的重载。Java在执行具有重载关系的方法时,将根据调用参数的个数和类型区分具体执行的是哪个方法。 8.3 多态 【例8-5】 在项目中创建MaxNumber类,定义两个getMax()方法,分别用来比较int类型和double类型变量并获得最大值。 8.3 多态 通过方法的重写实现多态是指一个给定类型的变量可以引用不同类型的对象,并且能够自动地调用变量所引用的对象类型的特定成员方法。 在Java中,实现这种处理机制的方法是利用指向父类对象的引用指向其子类对象,并根据该引用所指的当前子类类型,选择执行哪一个子类中重写的成员方法。 8.4 Object类 8.4.1 getClass()方法 8.4.2 toString()方法 8.4.3 equals() 方法 8.4 Object类 在Java中,所有的类都直接或间接继承了java.lang.Object类。 Object类是所有类的父类,是Java类层中最高层类,Java中任何一个类都是它的子类。 当创建一个类时,总是在继承,除非某个类已经指定要从其他类继承,否则它就是从java.lang.Object类继承而来的, 如String、Integer等类都是继承于Object类 除此之外自定义的类也都继承于Object类 8.4 Object类 由于所有类都是Object子类,所以在定义类时,省略了extends Object关键字。 8.4 Object类 Java将所有的类都作为Object类的子类。 1) 一个Object类型的对

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档