Напрямую — никак. Java не поддерживает множественное наследование классов во избежание проблемы ромба.
Множественное наследование поведения (реализация нескольких интерфейсов) возможно.
java
Для некоторого подобия множественного наследования функциональности можно использовать:
Интерфейсы с default и static методами (Java 8+): Позволяют предоставлять стандартную реализацию методов в интерфейсах.
java
Композиция: Класс содержит экземпляры других классов и делегирует им вызовы методов. Предпочтительный подход для "имеет" отношение вместо "является".
java
Сравнение подходов:
| Подход | Множественное наследование состояния | Множественное наследование поведения | Решение проблемы ромба |
|---|---|---|---|
| Наследование классов | Нет | Да (один базовый класс) | Решена |
| Реализация интерфейсов | Нет | Да | Не применима |
| Интерфейсы с default/static | Нет | Да | Решена ( explicit вызов) |
| Композиция | Да | Нет (делегирование) | Не применима |