Мне не хватает расширения нескольких классов в Java. Я хотел бы определить некоторые атрибуты и методы в одном классе, чтобы хранить в одном месте эти атрибуты и методы, которые будут использоваться в нескольких классах для разных целей. Далее, мне нужна функциональность JPanel, поэтому мне нужно расширить свой класс и этим классом.
Я думаю об одном решении, но я не уверен, что это правильный путь. Это хорошая практика, чтобы сделать что-то подобное? У меня есть класс:
/*
* Class for keeping common arguments
* it is not possible to extends by two classes
* so I need extend here JPanel
*/
public class **ContentPanel** extends javax.swing.**JPanel** {
private arg1;
private arg2;
public void commonMethod1() {
}
/* ... */
}
Далее я использую это расширяет для некоторых классов:
public class CashboxesPanel extends ContentPanel {
/* specific class with all needed functionality, some arguments, methods used only for this class ect. */
}
public class CardIndexesPanel extends ContentPanel {
/* next specific class with implemeted original funcionality not used anywhere */
}
/* more classes */
Я вижу основные недостатки:
- этоНе ясно, сколько классов продлено другими классами. Я должен проверить источник расширенного класса, чтобы проверить, не расширяет ли он другой,
- Я не вижу наиболее важной информации сверху: базовый класс - JPanel,
- это будетужасная непонятная «цепочка» с большим количеством классов ...
Конечно, интерфейсы не могут иметь атрибутов и реализованных методов, поэтому они не пригодны для меня. Для абстрактных классов также не поддерживается расширение нескольких классов.
Может кто-нибудь дать мне совет о том, как обращаться с наследованием этого Java? (= скажите, пожалуйста, что Мир по-прежнему прекрасен, и для моей проблемы существует «красивое» решение ...)