Car*_*ndo 0 java polymorphism inheritance
假设我有以下类:
class car1 {}
class car2 {}
class car3 {}
class car4 {}
Run Code Online (Sandbox Code Playgroud)
支持我也有方法: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();
...
}
Run Code Online (Sandbox Code Playgroud)
我有另一种方法,doStuff()
private void doStuff()
{
// psudocode
if queryCar() returns a car1, I want to create a JPanel with an instance member of type car1
}
Run Code Online (Sandbox Code Playgroud)
我如何完成所述的psudocode?InstanceOf用于确定类.但是,我只想让一个班级在runttime上自动生成那辆车.(想一想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; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |