第4章 面向对象(下)_补充案例.doc

上传人:人*** 文档编号:558441083 上传时间:2023-10-12 格式:DOC 页数:30 大小:315.51KB
返回 下载 相关 举报
第4章 面向对象(下)_补充案例.doc_第1页
第1页 / 共30页
第4章 面向对象(下)_补充案例.doc_第2页
第2页 / 共30页
第4章 面向对象(下)_补充案例.doc_第3页
第3页 / 共30页
第4章 面向对象(下)_补充案例.doc_第4页
第4页 / 共30页
第4章 面向对象(下)_补充案例.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《第4章 面向对象(下)_补充案例.doc》由会员分享,可在线阅读,更多相关《第4章 面向对象(下)_补充案例.doc(30页珍藏版)》请在金锄头文库上搜索。

1、博学谷让IT教学更简单,让IT学习更有效第四章 补充案例案例4-1 类的继承一、案例描述1、 考核知识点编号:00104001名称:类的继承2、 练习目标 了解类继承的意义和作用 掌握如何实现类的继承3、 需求分析在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。为了让初学者熟悉类的继承,本案例将演示类的继承并编写测试类验证子类是否拥有父类的可继承成员。4、 设计思路(实现原理)1)设计两个类Student和Teacher2)抽取两个类共同的内容(如:吃饭、睡觉)封装到一个类Person中,各自特有的部分保留在各自类中。3)让学生类继承Person类,老师类

2、也继承Person。4)编写测试类Example01,测试Student类和Teacher是否继承了Person类的成员。二、案例实现1、抽取父类Person,实现继承关系,代码如下:class Person String name;/姓名/ 吃饭的功能void eat() System.out.println(吃饭 );/ 睡觉的功能void sleep() System.out.println(睡觉);class Student extends Person / 学号int sid;class Teacher extends Person / 工号int tid;/ 教课的功能void t

3、each() System.out.println(老师教课);2、定义测试类Example01,代码如下:public class Example01public static void main(String args) Student s = new Student();s.eat();s.sleep();System.out.println(-);Teacher t = new Teacher();t.eat();t.sleep();t.teach();运行结果如图4-1所示。图4-1 运行结果三、案例总结1、在Java中,多个类可以继承一个父类,但是一个类不能直接继承多个类,一个类只

4、能有一个直接父类。2、父类是由子类不断抽取而来的,不断地抽取就形成了体系结构,这个结构称为继承体系结构。3、子类在继承父类的时候,会自动拥有父类所有的成员。4、继承的好处是划分了类的层次性,实现了代码重用、扩展了程序功能。案例4-2 方法的重写一、案例描述1、 考核知识点编号:00104002名称:方法的重写2、 练习目标 了解方法重写的意义和作用 掌握如何进行方法重写3、 需求分析在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。为了让初学者掌握方法的重写,本案例将编写一个类NewPhone,该类继承Phone类并对Phone类

5、的call()方法进行重写。4、 设计思路(实现原理)1)定义一个类Phone,编写方法call(),表示打电话功能 2)定义一个Phone的子类NewPhone,重写父类call()方法,让它除了打电话功能外还具有开启语言和关闭语言功能。 3)编写一个测试类Example02,分别调用重写前和重写后的call()方法二、案例实现1、定义Phone及其子类NewPhone,子类对父类中的call()方法重写,代码如下:class Phone void call() System.out.println(打电话);class NewPhone extends Phone void call()

6、System.out.println(开启语音);super.call();System.out.println(关闭语音);2、定义测试类Example02,代码如下:public class Example02public static void main(String args) System.out.println(-重写前-);Phone phone = new Phone();phone.call();System.out.println(-重写后-);Phone newPhone = new NewPhone();newPhone.call();运行结果如图4-2所示。图4-2

7、运行结果三、案例总结1、子类中需要对继承自父类的方法进行一些修改,这时就用到方法重写。2、在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。3、子类方法的访问修饰权限不能小于父类的。4、重写的主要优点是能够定义子类特有的特征。案例4-3 super访问父类成员变量一、案例描述1、 考核知识点编号:00104003名称:super关键字2、 练习目标 掌握使用super关键字访问父类成员变量3、 需求分析子类可以继承父类的非私有成员变量,如果在子类中修改了继承自父类的成员变量的值,再想要访问父类的该成员变量时,可以通过super.成员变量来实现。为了让初学者熟悉s

8、uper关键字的用法,本案例将分别设计Fu类及其子类Zi,并在Zi类的方法中使用super关键字访问Fu类的成员变量。4、 设计思路(实现原理)1)编写一个Fu类,在类中定义无参构造和一个初始值为20的num成员变量。 2)Zi类继承Fu类,在子类中对num值进行了修改,同时在子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super关键字调用了Fu类的num成员变量。 3)定义测试类Example03。二、案例实现1、编写Fu类及其子类Zi,在Zi类中使用super关键字调用Fu类成员变量,代码如下class Fu Fu() int num = 20;cla

9、ss Zi extends Fu Zi() int num = 30;/ 修改num的值void method() System.out.println(method);/ super关键字调用父类成员变量System.out.println(Fu类中num值为: + super.num);System.out.println(Zi类中num值为: + num);2、定义测试类Example03,代码如下:class Example03public static void main(String args) Zi z = new Zi();z.method();运行结果如图4-3所示。图4-3

10、 运行结果三、案例总结1、使用super关键字调用父类的成员方法。具体格式如下:super.成员变量2、被调用的父类成员变量,必须是非private的。案例4-4 super访问父类成员方法一、案例描述1、 考核知识点编号:00104003名称:super关键字2、 练习目标 掌握使用super关键字访问父类成员方法3、 需求分析子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,在Java中专门提供了一个super关键字用于访问父类的成员。为了让初学者熟悉super关键字的用法,本案例将分别设计Fu类及其子类Zi,在Zi类的方法中使用super关键字访问Fu类的成员方

11、法。4、 设计思路(实现原理)1)编写一个Fu类,在类中定义无参构造和一个无返回值的show()方法。 2)Zi类继承Fu类,子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super关键字调用了Fu类的show()方法。 3)定义测试类Example04。二、案例实现1、编写Fu类及其子类Zi,在Zi类中使用super关键字调用Fu类成员方法,代码如下:class Fu Fu() void show() System.out.println(Fu show);class Zi extends Fu Zi() void method() System.out.

12、println(Zi method);/ super关键字调用父类成员方法super.show();2、定义测试类Example04,代码如下:class Example04public static void main(String args) Zi z = new Zi();z.method();运行结果如图4-4所示。图4-4 运行结果三、案例总结1、使用super关键字调用父类的成员方法。具体格式如下:super.成员方法(参数1,参数2)2、被调用的父类成员方法,必须是非private的。案例4-5 super访问父类构造方法一、案例描述1、 考核知识点编号:00104003名称:s

13、uper关键字2、 练习目标 掌握如何在子类构造方法中使用super关键字访问父类构造方法3、 需求分析在子类的构造方法中一定会调用父类的某个构造方法,如果想指定调用类父类中的哪个构造方法,可以使用super关键字来实现。为了让初学者掌握super关键字的用法,本案例将分别设计Fu类及其子类Zi,在Zi类的构造方法中使用super关键字访问Fu类的构造方法。4、 设计思路(实现原理)1)编写一个Fu类,在类中定义无参构造。 2)Zi类继承Fu类,子类中也定义无参构造方法,在构造方法中使用super关键字调用Fu类的构造方法。 3)定义测试类Example05。二、案例实现1、编写Fu类及其子类

14、Zi,在Zi类构造中使用super关键字调用Fu类构造方法,代码如下:class Fu Fu() System.out.println(Fu类构造方法!);class Zi extends Fu Zi() super();/在子类构造中调用父类构造System.out.println(Zi类构造方法!);2、定义测试类Example05,代码如下:public class Example05public static void main(String args) Zi zi = new Zi();运行结果如图4-5所示。图4-5 运行结果三、案例总结1、通过super调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。2、在子类的构造方法中通过super指定调用父类的

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

最新文档


当前位置:首页 > 生活休闲 > 科普知识

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