2013-07-08 3 views
1

Мое приложение имеет следующий класс:Позволить классы с разными родителями расширить класс без множественного наследования

MyTextField, который проходит JTextField.

Я, однако, нужны методы внутри MyTextField в следующем классе:

MyPasswordField, что расширяет JPasswordField.

Множественное наследование не допускается на Java, и я бы хотел избежать того, чтобы скопировать 85% класса из-за этого. Как преодолеть это "ограничение"?

+0

Относительно того, почему я хотел бы это сделать; оба поля собираются использовать ту же «систему» ​​для заполнителей, что и для классов «JXXXField». – Zar

ответ

4

Используйте вспомогательный класс, который определяет общую функциональность. Объявите поле в каждом из MyTextField и в MyPasswordField, чтобы удержать экземпляр класса-помощника. Релейные вызовы для помощника по мере необходимости для общей функциональности, которые затем должны только кодироваться один раз.

0

Почему вы не используете композицию вместо наследования. Класс MyPasswordField может содержать переменную экземпляра myTextField, тогда вы можете просто использовать этот метод, используя ваш экземпляр и его методы. Дайте мне знать, если я иду по неправильному пути, и вы ожидаете чего-то другого.

0

Вы можете достичь этого с помощью класса Helper со статическими методами, поэтому вам не нужно хранить экземпляр класса-помощника в классах testfields.

Смежные вопросы