假設三個類: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