<<--B站..........欢迎来到DGX的博客..........GitHub-->>

我的B站

Java第五次上机实验(子类与继承)

目的:

本实验的目的是让学生熟悉下来知识点:子类的继承性,子类对象的创建过程。成员变量的继承与隐藏,方法的继承与重写。

要求:

编写程序模拟大学生,本科生,研究生和博士生。除主类E外,还有4个类UniversityStudentUndergraduateGraduatePhDStudent

其中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()的另一种写法

 

主类中写

 

 

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

 

 

 

posted @ 2021-03-31 14:45  DG息  阅读(526)  评论(0编辑  收藏  举报