Java第五次上机实验(子类与继承)
目的:
本实验的目的是让学生熟悉下来知识点:子类的继承性,子类对象的创建过程。成员变量的继承与隐藏,方法的继承与重写。
要求:
编写程序模拟大学生,本科生,研究生和博士生。除主类E外,还有4个类UniversityStudent,Undergraduate,Graduate,PhDStudent。
其中UniversityStudent类有成员变量age,方法speak()。
Undergraduate类是UniversityStudent的子类,增加了方法 supervisor();
Graduate类是UniversityStudent的子类,增加了方法supervisor();
PhDstudent类是Graduate类的子类,重写了supervisor().
要求输出结果如下:
F:\>javac E.java
F:\>java E
我是大学生
我是本科生
我20岁,我没有导师,好可怜!
我是硕士研究生
我24岁,我有导师,我导师好厉害!
我是博士研究生
我27岁,我导师是二级教授,博士导师,好厉害呀!
package test05;
//supervisor为导师
//UniversityStudent为大学生
class UniversityStudent{
int age;
String sp = "我是大学生";
void speak(){
System.out.println(sp);
}
}
//Undergraduate为本科生
class Undergraduate extends UniversityStudent{
//这里创建导师方法
void supervisor(int age){
System.out.println("我"+age+"岁,我没有导师,好可怜!");
}
}
//Graduate为研究生
class Graduate extends UniversityStudent{
void supervisor(int age){
System.out.println("我"+age+"岁,我有导师,我导师好厉害!");
}
}
//PhDStudent为博士生
class PhDStudent extends Graduate{
void supervisor(int age){
System.out.println("我"+age+"岁,我导师是二级教授,博士导师,好厉害呀!");
}//这里重写Graduate中的supervisor()
}
public class E {
public static void main(String args[]){
UniversityStudent student01 = new UniversityStudent();
student01.speak();
Undergraduate student02 = new Undergraduate();
student02.sp = "我是本科生";
student02.speak();
student02.supervisor(20);
Graduate student03 = new Graduate();
student03.sp = "我是硕士研究生";
student03.speak();
student03.supervisor(24);
PhDStudent student04 = new PhDStudent();
student04.sp = "我是博士研究生";
student04.speak();
student04.supervisor(27);
}
}
运行结果

其它:
其中speak()的另一种写法

主类中写

这里这两部分就可以省略了




浙公网安备 33010602011771号