2013-06-19 91 views
1

比方說,除了使用顏色變量之外,我有不同的A類和B類。 這兩個類已經擴展了JPanel類,所以我無法用它中的顏色變量來擴展一個新的類。然後我想我可以讓C類(包含它的顏色)成爲一個界面。但是不允許在界面中擁有屬性。擴展多個類的解決方案

任何想法如何仍然可以使用外部類的顏色爲A + B類?

思想:

A類 - 使用顏色
乙 類 - 使用顏色
C類 - 有顏色。

+0

定義C中的顏色並在c中創建getColor方法,該方法返回顏色 – WarGodNT

+0

您可以從'JPanel'中擴展一個'Z'類,它只添加一個'C cHasTheColors'字段,然後添加'A'類和'B'可以從'Z'延伸,具有'JPanel'和'C'字段的所有功能(當然,如果這是你想要的)。 –

+0

如果你使A和B類通用?在運行時,您將它們傳遞給您想要的顏色。 – Dimitri

回答

0

您可以隨時使用接口存儲常量。

public interface C{ 
    Color a; 
    Color b; 
    //And so on 
} 

現在有A和B實現這個類,應該這樣做。

+0

你確定允許嗎?請告訴我,如果我錯了,但我被告知只能在界面中使用未實現的方法。 – Kraishan

+0

那麼,這些是「公共靜態final」變量,而不是方法。我想這就是你想要的。 –

0
public interface C { 
    public static final Color c1 = Color.RED; 
    public static final Color c2 = Color.GREEN; 
    public static final Color c3 = Color.BLUE; 
} 

public class A extends JPanel implements C { 
    /* ... */ 
} 

public class B extends JPanel implements C { 
    /* ... */ 
} 

編輯:正如Luiggi門多薩的評論指出,您的Color s就have to be static and final

+0

請注意,接口中的字段將被標記爲「static final」,因此不會在實現該接口的類的實例之間共享*。 –

+0

所以它可以在接口中有靜態最終變量? :D – Kraishan