Java继承问题

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++指针的模拟)

jjn*_*guy 5

你应该使用继承做你需要的.

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)