вариант наследования - PullRequest
       7

вариант наследования

2 голосов
/ 22 декабря 2008

Какой еще вариант мы можем использовать для множественного наследования, кроме реализации интерфейса

Ответы [ 4 ]

3 голосов
/ 22 декабря 2008

Прямой ответ - использовать внутренние классы. Это дает вам два (или более) объекта, которые тесно связаны, но охватывают независимые базовые классы.

В общем, предпочитаю композицию наследованию. Распространенной ошибкой является использование наследования везде. Однако это оставляет негибкие решения, которым трудно следовать.

1 голос
/ 22 декабря 2008

Во-первых, лучше избегать множественного наследования и использовать интерфейсы. А на самом деле Java не поддерживает множественное наследование.

Но вы можете использовать миксин для фальсификации множественного наследования. Есть несколько руководств по этому поводу:

Множественное наследование в Java

Шаблон Java Mixin, или Фальшивое множественное наследование

И если вы хотите сделать что-то составное, советую взглянуть на Qi4j framework:

Композитно-ориентированное программирование с Qi4j

0 голосов
/ 22 декабря 2008

Вам, вероятно, придется использовать состав, т. Е. Иметь экземпляр вашего «родительского» класса в качестве члена вашего «дочернего» класса. («Parent» и «child» здесь обозначают отношения, которые были бы у двух классов, если бы вы использовали наследование.) Содержащий («child») класс должен затем обернуть интерфейс содержащегося («parent») класса, чтобы предоставить любую функциональность содержавшегося класса

Один из способов сгладить процесс обертывания - заставить и содержащийся, и содержащий класс реализовать один и тот же интерфейс - реализации методов этого интерфейса в содержащем классе могут тогда быть прямыми вызовами к одним и тем же методам в содержащемся классе.

0 голосов
/ 22 декабря 2008

Java не имеет множественного наследования .

Со страницы Интерфейсы Учебные руководства Java :

Язык программирования Java не поддерживает разрешить множественное наследование ..., но интерфейсы обеспечивают альтернатива.

Поскольку классом может быть реализовано несколько интерфейсов, это можно использовать в качестве замены или альтернативы фактическому множественному наследованию в Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...