gpt4 book ai didi

java - 基于逻辑构造对象类型——这可以做到吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:33 25 4
gpt4 key购买 nike

我希望有人能引导我朝着正确的方向前进。我似乎无法在任何地方找到解决此问题的合适方法。

我有一个名为 Student抽象类。三个外部类扩展 Student。这些称为 GraduateUndergraduatePartTime。在我的主要方法中,我想根据某种逻辑将一个对象构造为研究生、本科生或兼职。例如:

if (something) { Graduate student = new Graduate(); }
else if (something { Undergraduate student = new Undergraduate(); }

如果我尝试这样做,编译器(我使用的是 Netbeans)会提示对象 student 已经被定义。如果我尝试这样做:

Student student;
if (something) { student = new Graduate(); }

学生无法访问任何特定于研究生的方法。

如果我将三个扩展类设置为 Student 的内部静态类,会有什么改变吗?

希望问题是清楚的。关于如何解决这个问题的任何建议?任何建议表示赞赏!

最佳答案

你可以这样做:

Student student;
if (something) {
Graduate graduate = new Graduate();
graduate.visitMissisRobinson( );

student = graduate;
}
else if (somethingElse) {
Undergraduate undegradStudent = new Undergraduate();

undegradStudent.declareMajor( );

student = undegradStudent;
}

// now only do common methods of student
student.chargeTuition( );

关于java - 基于逻辑构造对象类型——这可以做到吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com