Java 扩展多个类的解决方案
假设我有A类和B类,除了使用颜色变量外,它们是不同的。 这两个类都已经扩展了JPanel类,因此我无法扩展包含颜色变量的新类。然后我想我可以使C类(带有颜色)成为一个接口。但是它不允许在接口中有属性 你知道我如何在A+B两个类的外部类中仍然使用颜色吗 思想: A类-使用颜色Java 扩展多个类的解决方案,java,inheritance,interface,extends,Java,Inheritance,Interface,Extends,假设我有A类和B类,除了使用颜色变量外,它们是不同的。 这两个类都已经扩展了JPanel类,因此我无法扩展包含颜色变量的新类。然后我想我可以使C类(带有颜色)成为一个接口。但是它不允许在接口中有属性 你知道我如何在A+B两个类的外部类中仍然使用颜色吗 思想: A类-使用颜色 B类-使用颜色 C类-有颜色 public interface C { public static final Color c1 = Color.RED; public static final Color c2 =
B类-使用颜色
C类-有颜色
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在评论中所指出的,您的
颜色将是。您始终可以使用一个接口来存储常量
public interface C{
Color a;
Color b;
//And so on
}
现在让A和B实现这个类,这样就可以了。请注意,接口中的字段将被标记为static final
,因此不会在实现接口的类的实例之间共享。因此允许在接口中使用static final变量:d在C中定义颜色并在C中创建一个getColor方法,该方法返回颜色您可以拥有一个从JPanel
扩展而来的类Z
,并且只添加一个C chastColor
字段,然后类A
和B
可以从Z
扩展而来,拥有JPanel
和其中的C
字段的所有功能(当然,如果这是您想要的)。如果您将类A和B设为通用类呢?在运行时,您会将想要的颜色传递给它们。您确定这是允许的吗?如果我错了,请告诉我,但有人告诉我,你只能在接口中使用未实现的方法。这些是publicstaticfinal
变量,而不是方法。我想这就是你想要的。