假设三个类:Class1,Class2和Class3加上一个变量值。Java:我可以为同一个变量获取不同的类实例吗?
我希望做的是这样的:
??? value;
switch (someInt) {
case 1: value = new Class1(); break;
case 2: value = new Class2(); break;
case 3: value = new Class3(); break;
}
我期待JavaFX中使用此构建这是许多getter和setter类似的各种类,但在数也不同(因此不同的类名都是从同一个父类派生的)。
是否有某种方式实现上述?
我已经评估了一些问题的答案,但我还是不能完全看到回答我的问题,所以这里是一个具体的例子:
这里有三个班,我想分配到阴影(我知道我不能像这样做,它只是为了举例说明):
Shadow shadow;
DropShadow shadow;
InnerShadow shadow;
switch (sType) {
case "SHADOW" : shadow = new Shadow(); break;
case "DROPSHADOW" : shadow = new DropShadow(); break;
case "INNERSHADOW" : shadow = new InnerShadow(); break;
}
// All these classes share the same parameters
shadow.setColor(Color.BLACK);
....
shadow.setRadius(2.0);
fieldContent.setEffect(shadow);
// This will then set any one of the three shadows
为了不把OOP概念扔在废纸篓中,3个类应该共享某种类型(如果只有相同的接口),然后将值变为此类型的变量。如果您创建值类型为Object的对象,那么您就会遇到麻烦。 –
是的,您可以使用'Object value;'或任何类型,它是所有三个类的超类型。 – Codebender
这些显然是相互矛盾的答案。你们有谁能解释你的答案吗? – Frank