设计一个学生类Student和它的一个子类Undergraduate,要求如下:
(1)Student类有name和age两个属性,一个包含两个参数的构造方法,用于给name和age赋值,一个show()方法打印Student的属性信息。
(2)本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个参数用于给继承的name和age赋值,第三个参数给degree赋值,一个show() 方法用于打印Udergraduate的属性信息。
(3)在测试类中分别创建Student对象和Udergraduate对象,调用它们的show()方法。
注意:每个类都完全封装,不允许有非私有化的属性。
class Student
{
private String name;
private int age;
public Student(String name,int age){
this.name=name;
this.age=age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
void show(){
System.out.println("我叫"+name+",今年"+age+"岁");
}
}
class Undergraduate extends Student
{
private String degree;
public Undergraduate(String name,int age,String degree){
super(name,age);
this.degree=degree;
}
public String getDegree(){
return degree;
}
public void setDegree(String degree){
this.degree=degree;
}
void show(){
System.out.println("我叫"+super.getName()+",今年"+super.getAge()+"岁,学位是"+degree);
}
}
public class Text1{
public static void main(String[] args){
Student s=new Student("张三",18);
s.show();
Undergraduate u=new Undergraduate("张三",18,"本科");
u.show();
}
}
注意:
我代码保存的名称为Text1,因为测试类前有public,名称需要与其保持一致。
结果: