假设我有以下类(class):
class car1 {}
class car2 {}
class car3 {}
class car4 {}
支持我也有方法:queryCar()
private Object queryCar()
{
int version = getCarVersion(); // returns car version
if (version == 1)
return new car1();
else if (version == 2)
return new car2();
else if (version == 3)
return new car3();
...
}
我还有另一种方法,doStuff()
private void doStuff()
{
// psudocode
if queryCar() returns a car1, I want to create a JPanel with an instance member of type car1
}
我如何完成上述伪代码? InstanceOf 用于确定类。然而,我只想要一个类在运行时自动生成那辆车。 (想到java中C++指针的模拟)
最佳答案
您应该使用继承来做您需要的事情。
abstract class Car {
public Car queryCar();
public int getCarVersion();
public void doStuff() {
JPanel j = new JPanel();
j.add(new JLabel(queryCar().getCarVersion()));
}
}
class Car1 extends Car {
public Car queryCar() { return new Car1(); }
public int getCarVersion() { return 1; }
}
关于Java继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4149226/