实验四 类的继承与多态
第一部分 编程(3.3 类的继承)(2学时)
1、类的继承—简单的基本程序 (1) 阅读并调试下列程序
(2) 回答下列问题
① 上述java程序编译后,生成哪些 class 文件,它们的访问范围是什么? ② 说明程序中类的继承关系
③ 子类Student 有几个参数? 构造方法有什么特点? ④ Student类的ShowStudent()方法有下面用?怎样调用它
2、 带引用类型成员的编程 (对【例3.4】的简化)
与上述继承关系类似,对person 类增加一个 “出生日期”(MyDate类对象),
面向对象的程序设计 / java程序设计 实验指导书
应怎样编程?
参考程序结构如下:
//【例3.4简化】 Student类继承Person类。 class MyDate {
int year,month,day;
public MyDate(int y, int m, int d) { ……. } }
class Person {
String name;
MyDate birthday;
public Person(String name, MyDate birthday) { …… } }
class Student extends Person //Student继承Person类 {
String speciality; //专业,子类增加的成员变量 public Student(String name, MyDate birthday,String speciality) { …… } void show() { // 显示的Student信息 } }
public class ex3_4 {
public static void main(String args[]) {
Student p1 = new Student(\"张小三\网络工程\");
Student p2 = new Student(\"李小四\计算机科学与技术 \"); p1.show(); p2.show(); }
} 运行结果
3、【例3.4】类的继承 (验证试验)
要求: 要知道,运行 Student.java 需要哪些类。
(以上 2 学时) 面向对象的程序设计 / java程序设计 实验指导书
第二部分 编程(3.4 类的多态性 ;3.5 抽象类和抽象方法)(2学时) 4、编译运行下列程序,并回答问题:
⑴ 指出程序中哪里是方法覆盖。
⑵ 指出程序中哪里是“对象上转”。理解;“父类对象引用子类实例”
5、认识toString()方法,及其覆盖层次
(1) 编译运行下列程序,观察显示对象 d1 的格式,理解object 类的toString()方法作用。
public class MyDate0
{ int year, month, day;
void set(int y, int m, int d)
{ year = y;
month = m;
day = d; }
public static void main(String args[])
{ MyDate0 d1 = new MyDate0();
d1.set(2009,7,16);
System.out.println(\"经设置后日期为:\"+d1);
}
}
(2) 在上述类中插入代码,再观察显示对象 d1 的格式,理解方法覆盖作用。 public String toString()
{ return year+\"年\"+month+\"月\"+day+\"日\"; }
(3) 如果不使用toString() 方法,应怎样定义一个其他方法,输出上述同样效果。
6、【例3.6】在对象数组中查找 ① 理解对象数组。
② 着重分析print方法,理解 toString() 方法的覆盖层次。 7、【例3.7】 闭合图形抽象类及子类
因篇幅问题不能全部显示,请点此查看更多更全内容