Java培训教程-继承和多态

上传人:油条 文档编号:12485707 上传时间:2017-10-19 格式:DOCX 页数:9 大小:151.71KB
返回 下载 相关 举报
Java培训教程-继承和多态_第1页
第1页 / 共9页
Java培训教程-继承和多态_第2页
第2页 / 共9页
Java培训教程-继承和多态_第3页
第3页 / 共9页
Java培训教程-继承和多态_第4页
第4页 / 共9页
Java培训教程-继承和多态_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Java培训教程-继承和多态》由会员分享,可在线阅读,更多相关《Java培训教程-继承和多态(9页珍藏版)》请在金锄头文库上搜索。

1、 http:/磨砺营 IT 教育版权所有1.1 继承的作用继承是 java 面向对象的三大特征之一,继承可以解决编程中代码冗余的问题,是实现代码重用的重要手段之一。继承是软件可重用性的一种表现,新类可以在不增加自身代码的情况下,通过从现在的类中继承其属性和方法,来充实自身内容,这种现象或行为就成为继承。这时候新类就称为子类,现有的类称为父类。说一说如下两个类有什么问题?如何优化? -Dog+-Penguin+讲解思路:采用提问的方式和学生互动,可以让学生动起脑来,为后期学生们掌握继承做铺垫。由图可以很直观的看出两个类有的属性和方法是相同的。使用继承修改后 http:/磨砺营 IT 教育版权所有

2、通过上面的形式,可以减少代码量,方便修改代码。1.2 使用继承定义宠物类1)编写父类访问修饰符 class pet/公共的属性和方法2)编写子类,继承父类访问修饰符 class Dog extends Pet/子类特有的属性和方法总结:继承是 java 实现代码重要的重要手段之一。Java 中只支持单根继承,即一个类只能有一个直接父类。针对上述的案例,让学生们自己动手写一遍,并编写测试案例。 http:/磨砺营 IT 教育版权所有提问:上述案例中,如 Dog 类或者 Penguin 需要和 Pet 类的 print()方法有不同的实现,怎么办?子类重写父类的方法即可(方法重写:在子类中根据需求

3、对父类继承的方法进行重新编写)注:重写方法和被重写方法必须具有相同的方法名和参数列表重写方法的返回值类型必须和被重写方法的返回值类型相同或者是其子类重写方法的不能缩小被重写方法的访问权限。升级上述案例:在 Dog 类以及 Penguin 类中重写父类 Pet 类的 print():类的 print()需要分别输出 Dog 的品种与 Penguin 的性别 编写测试类 。讲解需求,采用记事本给学员们打一个具体的模板,提示学员实现思路。提问:方法重写与方法重载的区别?答案:重写是指子类继承父类,子类里重新编写了父类中的同名(同参数)方法,也就是覆盖了父类的方法。(一般情况指抽象的父类方法)重载是:

4、指在一个类里,方法名相同(返回类型也要相同),参数不同(参数个数不同,或者参数类型部同);提问:在上述案例中,Dog 或 Penguin 如何访问 Pet 的成员? 访问父类构造方法super(参数);访问父类属性或方法super.属性名/方法名();super 关键字和 this 关键字的作用类似,都是将被屏蔽了的成员变量、成员方法变为可见可用。super 用在子类中,访问直接父类中的被屏蔽的内容,进一步提高代码的重用性和灵活性。super 关键字不仅可以访问父类的构造方法,还可以访问父类的成员,包括父类的属性、一般方法等,无法通过 super 访问 private 成员 http:/磨砺营

5、 IT 教育版权所有1.3 Object 类Object 类是所有类的父类,Object 类被子类经常重写的方法以下是 Object 类的部分方法:方法 说明 toString() 返回当前对象本身的有关信息,按字符串对象返回 equals() 比较两个对象是否是同一个对象,是则返回 true hashCode() 返回该对象的哈希代码值 getClass() 获取当前对象所属的类信息,返回 Class 对象 equals()方法,在 java.lang.String 类重写了 Object 类中的一种。1.4 实现多态的表现形式1.4.1 认识多态多态一词的通常含义是指能够呈现出多种不同的形

6、式或形态,而在程序设计的术语中,它意味这一个特定类型的变量可以引用不同类型的对象,并且能够自动地调节引用的对象的方法。1.4.2 构造方法执行顺利: http:/磨砺营 IT 教育版权所有升级案例:需求:升级前一个上机,在 Dog 类以及 Penguin 类中使用 super 调用父类 Pet 类的成员 子类的 print()需要分别输出 Dog 与 Penguin 的各种属性信息 编写测试类 讲解思路:根据之前学的类与对象,访问一个类的属性和方法时要先创建一个对象,然后采用对象.属性,对象.方法的方式去访问。那么在这里也是同样的道理。提问:1)代码输出什么?class A public A(

7、)System.out.println(父类的构造方法);public class B extends A http:/磨砺营 IT 教育版权所有public B()System.out.println(子类的构造方法);public static void main(String args) B b=new B(); 答案:先输出:父类的构造方法然后输出:子类的构造方法。 知识点:在执行子类时,先执行父类的构造方法,再执行子类的构造方法,是构造方法不需要调用,可以直接执行。2)提问:如下主人类中给宠物看病的方法,如果又需要给 XXX 宠物看病,怎么办? /给狗看病 public void c

8、ure(Dog dog) if (dog.getHealth() = new (); (1)此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法 ;(2)此时通过父类引用变量无法调用子类特有的方法。但是:向上转型后,将无法调用子类特有的方法。如果需要调用子类特有的方法,怎么办?此问题提问学生,可以引发学生思考。有了向上转型,是不是可以有向下转型呢。Dog dog=(Dog)pet;/将 pet 转换为 Dog 类型dog. catchingFlyDisc();/执行 Dog 特有的方法 1.4.4 向下转型向下转型:将一个指向子类对象的父类引用赋给一个子类的引用,即:父类类

9、型转换为子类类型。需强制类型转换 。注: = ( ); http:/磨砺营 IT 教育版权所有在向下转型的过程中,如果没有转换为真实子类类型,会出现类型转换异常 。提问:如何减少在向下转型的过程中,没有转换为真实子类类型的类型转换异常? 答案:在 Java 中提供了 instanceof 运算符来进行类型的判断 。注意:使用 instanceof 时,对象的类型必须和 instanceof 后面的参数所指定的类在继承上有上下级关系 。2.总结提问:1) 什么是向上转型? 答案:父类的引用指向子类对象。自动进行类型转换。2) 什么是向下转型?答案:将一个指向子类对象的父类引用赋给一个子类的引用,即:父类类型转换为子类类型。需强制类型转换 。3) instanceof 作用是什么?答案:进行类型的判断,使用时应该注意:对象的类型必须和 instanceof 后面所指定的类在继承上有上下级的关系。4) 什么是方法重写?有什么注意事项?答案:方法重写就是子类重写父类的方法,在父类的基础上“发扬光大“。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号