发布时间 : 星期一 文章第4章面向对象(下) - 补充案例课件更新完毕开始阅读
博学谷——让IT教学更简单,让IT学习更有效
第四章 补充案例
案例4-1 类的继承
一、案例描述
1、 考核知识点
编号:00104001 名称:类的继承
2、 练习目标
? 了解类继承的意义和作用 ? 掌握如何实现类的继承
3、 需求分析
在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。 为了让初学者熟悉类的继承,本案例将演示类的继承并编写测试类验证子类是否拥有父类的可继承成员。
4、 设计思路(实现原理)
1)设计两个类Student和Teacher
2)抽取两个类共同的内容(如:吃饭、睡觉)封装到一个类Person中,各自特有的部分保留在各自类中。
3)让学生类继承Person类,老师类也继承Person。
4)编写测试类Example01,测试Student类和Teacher是否继承了Person类的成员。
二、案例实现
1、抽取父类Person,实现继承关系,代码如下:
class Person { }
class Student extends Person {
1
String name;//姓名 // 吃饭的功能 void eat() { }
// 睡觉的功能 void sleep() { }
System.out.println(\睡觉\System.out.println(\吃饭 \
博学谷——让IT教学更简单,让IT学习更有效
}
class Teacher extends Person { }
// 工号 int tid; // 教课的功能 void teach() { }
System.out.println(\老师教课\// 学号 int sid;
2、定义测试类Example01,代码如下:
public class Example01{ }
public 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中,多个类可以继承一个父类,但是一个类不能直接继承多个类,一个类只能有一个直接父类。
2、父类是由子类不断抽取而来的,不断地抽取就形成了体系结构,这个结构称为继承体系结构。 3、子类在继承父类的时候,会自动拥有父类所有的成员。
2
博学谷——让IT教学更简单,让IT学习更有效
4、继承的好处是划分了类的层次性,实现了代码重用、扩展了程序功能。
案例4-2 方法的重写 一、案例描述
1、 考核知识点
编号:00104002 名称:方法的重写
2、 练习目标
? 了解方法重写的意义和作用 ? 掌握如何进行方法重写
3、 需求分析
在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些 修改,即对父类的方法进行重写。为了让初学者掌握方法的重写,本案例将编写一个类NewPhone,该类继承Phone类并对Phone类的call()方法进行重写。
4、 设计思路(实现原理)
1)定义一个类Phone,编写方法call(),表示打电话功能
2)定义一个Phone的子类NewPhone,重写父类call()方法,让它除了打电话功能外还具有开启语言和关闭语言功能。
3)编写一个测试类Example02,分别调用重写前和重写后的call()方法
二、案例实现
1、定义Phone及其子类NewPhone,子类对父类中的call()方法重写,代码如下:
class Phone { }
class NewPhone extends Phone { }
void call() {
System.out.println(\开启语音\super.call(); void call() {
System.out.println(\打电话\}
System.out.println(\关闭语音\}
2、定义测试类Example02,代码如下:
public class Example02{
public static void main(String[] args) {
System.out.println(\重写前--\Phone phone = new Phone();
3
博学谷——让IT教学更简单,让IT学习更有效
}
}
phone.call();
System.out.println(\重写后--\Phone newPhone = new NewPhone(); newPhone.call();
运行结果如图4-2所示。
图4-2 运行结果
三、案例总结
1、子类中需要对继承自父类的方法进行一些修改,这时就用到方法重写。
2、在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。 3、子类方法的访问修饰权限不能小于父类的。 4、重写的主要优点是能够定义子类特有的特征。
案例4-3 super访问父类成员变量 一、案例描述
1、 考核知识点 编号:00104003 名称:super关键字
2、 练习目标
? 掌握使用super关键字访问父类成员变量
3、 需求分析
子类可以继承父类的非私有成员变量,如果在子类中修改了继承自父类的成员变量的值,再想要访问父类的该成员变量时,可以通过super.成员变量来实现。为了让初学者熟悉super关键字的用法,本案例将分别设计Fu类及其子类Zi,并在Zi类的方法中使用super关键字访问Fu类的成员变量。 4、 设计思路(实现原理)
1)编写一个Fu类,在类中定义无参构造和一个初始值为20的num成员变量。
2)Zi类继承Fu类,在子类中对num值进行了修改,同时在子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super关键字调用了Fu类的num成员变量。 3)定义测试类Example03。
4