比方說,除了使用顏色變量之外,我有不同的A類和B類。 這兩個類已經擴展了JPanel類,所以我無法用它中的顏色變量來擴展一個新的類。然後我想我可以讓C類(包含它的顏色)成爲一個界面。但是不允許在界面中擁有屬性。擴展多個類的解決方案
任何想法如何仍然可以使用外部類的顏色爲A + B類?
思想:
A類 - 使用顏色
乙 類 - 使用顏色
C類 - 有顏色。
比方說,除了使用顏色變量之外,我有不同的A類和B類。 這兩個類已經擴展了JPanel類,所以我無法用它中的顏色變量來擴展一個新的類。然後我想我可以讓C類(包含它的顏色)成爲一個界面。但是不允許在界面中擁有屬性。擴展多個類的解決方案
任何想法如何仍然可以使用外部類的顏色爲A + B類?
思想:
A類 - 使用顏色
乙 類 - 使用顏色
C類 - 有顏色。
您可以隨時使用接口存儲常量。
public interface C{
Color a;
Color b;
//And so on
}
現在有A和B實現這個類,應該這樣做。
你確定允許嗎?請告訴我,如果我錯了,但我被告知只能在界面中使用未實現的方法。 – Kraishan
那麼,這些是「公共靜態final」變量,而不是方法。我想這就是你想要的。 –
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。
請注意,接口中的字段將被標記爲「static final」,因此不會在實現該接口的類的實例之間共享*。 –
所以它可以在接口中有靜態最終變量? :D – Kraishan
定義C中的顏色並在c中創建getColor方法,該方法返回顏色 – WarGodNT
您可以從'JPanel'中擴展一個'Z'類,它只添加一個'C cHasTheColors'字段,然後添加'A'類和'B'可以從'Z'延伸,具有'JPanel'和'C'字段的所有功能(當然,如果這是你想要的)。 –
如果你使A和B類通用?在運行時,您將它們傳遞給您想要的顏色。 – Dimitri