Наследовать класс без родительского типа в Java - PullRequest
0 голосов
/ 25 сентября 2018

Как я могу наследовать от другого класса без принятия родительского типа?

Например, я хочу иметь возможность Car принимать все методы и свойства Vehicle, не будучи распознанным как Объекттип Vehicle.

Есть ли удобный способ сделать это в Java без дублирования всех методов и свойств?

Ответы [ 5 ]

0 голосов
/ 25 сентября 2018

Если вы используете Spring Framework, вы можете определить абстрактный компонент для этой цели https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-child-bean-definitions

0 голосов
/ 25 сентября 2018

Если автомобиль и транспортное средство наследуют от общего патента, они будут использовать те же методы, при этом автомобиль не является транспортным средством и не будет дублировать.

0 голосов
/ 25 сентября 2018

Я думаю, что вы хотите использовать шаблон делегата. Нет простого способа сделать это с нативной Java, вы можете использовать проект Lombok Delegate , чтобы сделать его действительно удобным.

0 голосов
/ 25 сентября 2018

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

http://www.javassist.org/tutorial/tutorial2.html#intro

0 голосов
/ 25 сентября 2018

Зависит от вашего определения удобно.Вы ищете Forwarding / Composition / Aggregation, по существу:

class B {
  A a;
  T foo() { return a.foo(); }
}

Что означает, что все методы, определенные в A, должны дублироваться в B.

Часто обсуждается вопрос Наследование против агрегации .

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