扩展多个类的解决方案

时间:2013-06-19 14:18:46

标签: java inheritance interface extends

假设除了使用颜色变量外,我的A类和B类不同。 这两个类都已经扩展了JPanel类,所以我不能扩展一个带有颜色变量的新类。然后我想我可以将C类(带有颜色)作为界面。但是不允许在界面中拥有属性。

我知道如何仍然可以在外部类中使用A + B类的颜色吗?

想法:

A类 - 使用颜色
B级 - 使用颜色
C级 - 有颜色。

2 个答案:

答案 0 :(得分: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 Mendoza的评论所述,您的Colorhave to be static and final

答案 1 :(得分:0)

您始终可以使用接口存储常量。

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

现在有A和B实现这个类,那应该这样做。