在Java中为单个变量分配一个或另一个子类

在Java中为单个变量分配一个或另一个子类,java,inheritance,subclass,Java,Inheritance,Subclass,我试图使用一个变量来调用子类方法,但是我有两个不同的子类,这个变量可能是。我有一个超级班的学生和一个子班的研究生和本科生。两个子类的方法调用相同,只是实现方式不同。基本上,我想要这样的东西: if (studentType == 1) { UnderGrad student = new UnderGrad(); } else { Grad student = new Grad(); } student.setNumAssignments(); student.setNumDis

我试图使用一个变量来调用子类方法,但是我有两个不同的子类,这个变量可能是。我有一个超级班的学生和一个子班的研究生和本科生。两个子类的方法调用相同,只是实现方式不同。基本上,我想要这样的东西:

if (studentType == 1) {
    UnderGrad student = new UnderGrad();
} else {
    Grad student = new Grad();
}

student.setNumAssignments();
student.setNumDiscussions();
student.setNumMidweekAssignments();

首先声明共同祖先的变量,然后有条件地分配给它:

Student student;

if (studentType == 1) {
    student = new UnderGrad();
} else {
    student = new Grad();
}

student.setNumAssignments();

首先声明共同祖先的变量,然后有条件地分配给它:

Student student;

if (studentType == 1) {
    student = new UnderGrad();
} else {
    student = new Grad();
}

student.setNumAssignments();

您需要一个超类或接口来表示该变量。类似于
学生
家长班。那么实例就是您的子类版本。
Student=studentType==1?新本科():新毕业生()您需要一个超类或接口来表示该变量。类似于
学生
家长班。那么实例就是您的子类版本。
Student=studentType==1?新本科():新毕业生()太棒了,谢谢。我已经将student变量初始化为一个新的student,而不是让if/else语句初始化它。太棒了,谢谢。我将student变量初始化为一个新student,而不是让if/else语句初始化它。