- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
子类继承父类的属性和行为
Java Object-Oriented Programming 北京科技大学天津学院 信息工程系 Java Object-Oriented Programming 4 面 向 对 象 程 序 设 计 第4讲 类的特性(上) 北京科技大学天津学院 信息工程系 回顾 使用Java中的数组 掌握选择结构流程 掌握循环结构流程 掌握其他流程控制语句 北京科技大学天津学院 信息工程系 本章主要内容 理解父类与子类的继承关系 理解继承中发生的方法重写 重写Object类的toString( )方法 使用super关键字访问父类成员 理解抽象类 理解内部类 北京科技大学天津学院 信息工程系 继承现象 父 类 子类 父类/子类是相对的 牛类 狮子类 老虎类 动物类 食肉动物类 食草动物类 羊类 北京科技大学天津学院 信息工程系 类的继承关系 哺乳动物类(父类) 公共属性和方法 私有属性和方法 狗类(子类) 继承属性 继承方法 新属性 新方法 猫类(子类) 继承属性 继承方法 新属性 新方法 老虎类(子类) 继承属性 继承方法 新属性 新方法 北京科技大学天津学院 信息工程系 类的继承关系 Mammal类 属性:legsNumber、height、weight、color 方法:breed( )等 Dog类 属性:legNumber等、hasTail 方法: breed( )等、keepHouse( )等 Cat类 属性:legNumber等 方法: breed( )等、climb( )等 北京科技大学天津学院 信息工程系 继承的概念 继承是体现了类与类之间的关系,在现有类的基础上建立新类的处理过程称为继承。 直接或间接被继承的类都是父类,子类继承父类的属性和行为。父类也称超类或基类,子类也称派生类。 子类复用父类的代码,同时也允许子类增加自己特有的属性和方法。这样使得程序结构的设计更加清晰,达到既减少程序的编码量,同时降低程序维护的工作量。 父类的私有属性与方法不传递给子类。 Java不允许出现多重继承。 北京科技大学天津学院 信息工程系 方法重写 方法重写(overriding)是指在子类中存在与父类完全相同的方法,则发生方法的覆盖,即子类可以改写父类方法所实现的功能。 自然界中,同一种行为具有不同实现方式的现象很多。如:石墨与金刚石。 北京科技大学天津学院 信息工程系 方法重写 发生在父类与子类中 方法名称相同 参数列表相同 返回类型相同 方法实现不同 方法访问权限不能缩小,如:父类中被重写的方法访问权限为public,子类重写方法时不能缩小为private、protected或默认。 子类重写方法不能抛出新的异常。 北京科技大学天津学院 信息工程系 Object类 —— 一切类的父类 Object类存在与java.lang包中,因此当定义一个新类而不指明其父类时,该类默认继承Object类。 Object类常用方法: boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”。 String toString( ) :返回该对象的字符串表示。 定义实体类时,通常要重写上述两个方法。 继承中发生方法重写对构造方法的影响 每个类都会有自己的构造方法,即使没有显示定义,系统也会提供一个默认的无参构造方法。 构造方法名称与类名同名,因此父类与子类的构造方法名称必然不同,不会发生方法重写。 北京科技大学天津学院 信息工程系 北京科技大学天津学院 信息工程系 super关键字 执行创建一个子类实例时, Cat cat = new Cat( ); 首先,调用执行父类的无参构造方法;然后调用执行子类的无参构造方法。原因是子类构造方法隐式了第一句代码super( ),即: public Cat() { super( ); } //运行子类的构造方法之前首先调用父类的构造方法 super 关键字始终指向当前类的父类,可以使用该关键字显式调用父类的有参构造方法或成员方法。 北京科技大学天津学院 信息工程系 本节小结 理解父类与子类的继承关系 理解继承中发生的方法重写 重写Object类的toString( )方法 使用super关键字访问父类成员 访问修饰符的权限 * public class ArrayTest { public static void main(String[] args) { int[] numbers; //数组定义 numbers = new int[3]; //数组分配空间 if(args.length != 0) { numbers[0] = Integer.parseInt(args[0]); //数组元素初始化
文档评论(0)