发布时间 : 星期一 文章第4章面向对象(下) - 补充案例课件更新完毕开始阅读
博学谷——让IT教学更简单,让IT学习更有效
二、案例实现
1、编写Fu类及其子类Zi,在Zi类中使用super关键字调用Fu类成员变量,代码如下
class Fu { }
class Zi extends Fu { }
Zi() {}
int num = 30;// 修改num的值 void method() {
System.out.println(\// super关键字调用父类成员变量
System.out.println(\类中num值为:\Fu() {} int num = 20;
System.out.println(\类中num值为:\}
2、定义测试类Example03,代码如下:
class Example03{ }
public static void main(String[] args) { }
Zi z = new Zi(); z.method();
运行结果如图4-3所示。
图4-3 运行结果
三、案例总结
1、使用super关键字调用父类的成员方法。具体格式如下:
super.成员变量
2、被调用的父类成员变量,必须是非private的。
5
博学谷——让IT教学更简单,让IT学习更有效
案例4-4 super访问父类成员方法 一、案例描述
1、 考核知识点 编号:00104003 名称:super关键字
2、 练习目标
? 掌握使用super关键字访问父类成员方法
3、 需求分析
子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,在Java中专门提供了一个super关键字用于访问父类的成员。为了让初学者熟悉super关键字的用法,本案例将分别设计Fu类及其子类Zi,在Zi类的方法中使用super关键字访问Fu类的成员方法。
4、 设计思路(实现原理)
1)编写一个Fu类,在类中定义无参构造和一个无返回值的show()方法。
2)Zi类继承Fu类,子类中定义无参构造和一个无返回值的method()方法,method()方法中使用super关键字调用了Fu类的show()方法。 3)定义测试类Example04。
二、案例实现
1、编写Fu类及其子类Zi,在Zi类中使用super关键字调用Fu类成员方法,代码如下:
class Fu { }
class Zi extends Fu { }
Zi() {}
void method() { }
System.out.println(\// super关键字调用父类成员方法 super.show(); Fu() {} void show() { }
System.out.println(\
2、定义测试类Example04,代码如下:
class Example04{
public static void main(String[] args) { }
6
Zi z = new Zi(); z.method();
博学谷——让IT教学更简单,让IT学习更有效
}
运行结果如图4-4所示。
图4-4 运行结果
三、案例总结
1、使用super关键字调用父类的成员方法。具体格式如下:
super.成员方法([参数1,参数2…])
2、被调用的父类成员方法,必须是非private的。
案例4-5 super访问父类构造方法 一、案例描述
1、 考核知识点
编号:00104003 名称:super关键字
2、 练习目标
? 掌握如何在子类构造方法中使用super关键字访问父类构造方法
3、 需求分析
在子类的构造方法中一定会调用父类的某个构造方法,如果想指定调用类父类中的哪个构造方法,可以使用super关键字来实现。为了让初学者掌握super关键字的用法,本案例将分别设计Fu类及其子类Zi,在Zi类的构造方法中使用super关键字访问Fu类的构造方法。
4、 设计思路(实现原理)
1)编写一个Fu类,在类中定义无参构造。
2)Zi类继承Fu类,子类中也定义无参构造方法,在构造方法中使用super关键字调用Fu类的构造方法。
3)定义测试类Example05。
二、案例实现
1、编写Fu类及其子类Zi,在Zi类构造中使用super关键字调用Fu类构造方法,代码如下:
class Fu {
Fu() {
System.out.println(\类构造方法!\}
7
博学谷——让IT教学更简单,让IT学习更有效
}
class Zi extends Fu { }
Zi() {
super();//在子类构造中调用父类构造 System.out.println(\类构造方法!\}
2、定义测试类Example05,代码如下:
public class Example05{ }
public static void main(String[] args) { }
Zi zi = new Zi();
运行结果如图4-5所示。
图4-5 运行结果
三、案例总结
1、通过super调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。
2、在子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法。
3、被调用的父类构造方法,必须是非private的。
案例4-6 final修饰类 一、案例描述
1、 考核知识点
编号:00104004 名称:final关键字
2、 练习目标
? 了解final关键字修饰类的特点 ? 掌握final关键字修饰类的用法
3、 需求分析
Java中的类被final关键字修饰后,该类将不可以被继承,也就是不能够派生子类。为了让初学者熟悉final关键字修饰类的用法,本案例将分别设计两个类,一个是使用final关键字修饰的Fu类,另一个是继承Fu类的Zi类,验证final关键字修饰的类是否能被继承。
8