Решение для расширения нескольких классов
Допустим, у меня есть класс A и B, которые отличаются, за исключением использования цветовых переменных. Оба класса уже расширяют класс JPanel, поэтому я не могу расширить новый класс с переменными цвета в нем. Затем я подумал, что мог бы сделать класс C (с цветами в нем) интерфейсом. Но нельзя иметь атрибуты в интерфейсе.
Любая идея, как я все еще могу использовать цвета во внешнем классе для обоих классов A + B?
Мысль:
Класс А - использует цвета
Класс B - использует цвета
Класс C - имеет цвета.
2 ответа
Решение
Вы всегда можете использовать интерфейс для хранения констант.
public interface C{
Color a;
Color b;
//And so on
}
Теперь пусть A и B реализуют этот класс, и это должно быть сделано.
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 {
/* ... */
}
РЕДАКТИРОВАТЬ: Как отмечено в комментарии Луиджи Мендосы, ваш Color
s должен быть статичным и окончательным.