JAVA作业,求大神帮助
1)编程实现:设计一个学生类Student,包含的属性有姓名name和年龄age.由学生类派生出本科生类Undergraduate和研究生类Postgraduate,本科...
1)编程实现:设计一个学生类Student,包含的属性有姓名name和年龄age. 由学生类派生出本科生类Undergraduate和研究生类Postgraduate, 本科生类包含的属性有专业specialty等, 研究生类包含的属性有研究方向studydirection等。每个类都有相关数据的set方法和get方法.
2)声明测试类:声明Student类的数组(含5个元素),生成五个对象存入数组:其中二个Student类的对象、二个Postgraduate类的对象、一个Undergraduate类的对象,打印输出每个对象的某个成员变量。将一个父类的引用指向一个子类对象,用这个塑型后的对象来调用某个方法实现多态性。
给出的程序代码要有详细注释,要有运行结果截图
谁帮我搞定这作业我的分全给他了。。。 展开
2)声明测试类:声明Student类的数组(含5个元素),生成五个对象存入数组:其中二个Student类的对象、二个Postgraduate类的对象、一个Undergraduate类的对象,打印输出每个对象的某个成员变量。将一个父类的引用指向一个子类对象,用这个塑型后的对象来调用某个方法实现多态性。
给出的程序代码要有详细注释,要有运行结果截图
谁帮我搞定这作业我的分全给他了。。。 展开
1个回答
展开全部
class Student {
String name;
int age;
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
class Undergraduate extends Student{
String specialty;
public void setSpecialty(String specialty){
this.specialty=specialty;
}
public String getSpecialty(){
return specialty;
}
public void setName(String newName){ //多态存在的一个必要条件,重写父类的方法
this.name=newName;
}
public String getName(){ //重写父类的方法
return this.name;
}
}
class Postgraduate extends Student{
String studydirection;
public void setStudydirection(String studydirection){
this.studydirection=studydirection;
}
public String getStudydirection(){
return studydirection;
}
}
public class Test3 {
public static void main(String[] args) {
Student st[]={new Student(),new Student(),new Postgraduate(),new Postgraduate(),new Undergraduate()};
st[0].setName("Tom"); //设置名字
st[0].setAge(22);//设置年龄
//打印姓名 ,年龄
System.out.println("姓名:"+st[0].getName()); //这是父类方法
System.out.println("年龄:"+st[0].getAge());//这也是父类方法
st[2].setName("研究生姓名AA"); //st[2],st[3],st[4]都是父类Student的引用指向了子类的对象,这是用父类引用调子类的重写父类的方法
System.out.println("姓名:"+st[2].getName());//还是父类引用指向子类对象,调子类getName()方法。
//因为重复性多,所以就简单写了几个方法,老师考的估计就是父类引用指向子类对象的多态。多态存在的三个必要条件:1.要有继承 2.要用重写。3父类引用指向子类对象
}
}
String name;
int age;
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
class Undergraduate extends Student{
String specialty;
public void setSpecialty(String specialty){
this.specialty=specialty;
}
public String getSpecialty(){
return specialty;
}
public void setName(String newName){ //多态存在的一个必要条件,重写父类的方法
this.name=newName;
}
public String getName(){ //重写父类的方法
return this.name;
}
}
class Postgraduate extends Student{
String studydirection;
public void setStudydirection(String studydirection){
this.studydirection=studydirection;
}
public String getStudydirection(){
return studydirection;
}
}
public class Test3 {
public static void main(String[] args) {
Student st[]={new Student(),new Student(),new Postgraduate(),new Postgraduate(),new Undergraduate()};
st[0].setName("Tom"); //设置名字
st[0].setAge(22);//设置年龄
//打印姓名 ,年龄
System.out.println("姓名:"+st[0].getName()); //这是父类方法
System.out.println("年龄:"+st[0].getAge());//这也是父类方法
st[2].setName("研究生姓名AA"); //st[2],st[3],st[4]都是父类Student的引用指向了子类的对象,这是用父类引用调子类的重写父类的方法
System.out.println("姓名:"+st[2].getName());//还是父类引用指向子类对象,调子类getName()方法。
//因为重复性多,所以就简单写了几个方法,老师考的估计就是父类引用指向子类对象的多态。多态存在的三个必要条件:1.要有继承 2.要用重写。3父类引用指向子类对象
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询