搜索
您的当前位置:首页正文

实验四 类的继承与多态

来源:六九路网
面向对象的程序设计 / java程序设计 实验指导书

实验四 类的继承与多态

第一部分 编程(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】 闭合图形抽象类及子类

因篇幅问题不能全部显示,请点此查看更多更全内容

Top