Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: multiple, inheritance

Поддерживается ли в Java множественное наследование классов?

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

Короткий ответ

В Java множественное наследование классов не поддерживается. Класс может наследоваться только от одного другого класса. Это сделано для предотвращения конфликтов и неоднозначностей. Вместо этого в Java используются интерфейсы.

Длинный ответ

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

Ограничение наследования в Java

Определение:
Множественное наследование классов — это возможность наследоваться сразу от нескольких классов.

В Java это запрещено:

  • класс может иметь только одного родителя

  • используется ключевое слово extends только один раз

// так сделать нельзя
// class A extends B, C {}

Почему это запрещено

Основная причина — проблема «ромба»:

  • два родительских класса имеют одинаковые методы

  • становится непонятно, какую реализацию использовать

Альтернатива — интерфейсы

Java решает эту проблему через интерфейсы:

  • класс может реализовывать несколько интерфейсов

  • реализация методов задаётся явно

public interface Flyable {
    void fly();
}

public interface Swimmable {
    void swim();
}

public class Duck implements Flyable, Swimmable {
    public void fly() {}
    public void swim() {}
}

Краткий вывод

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • Java

    Java

Ключевые слова

#multiple

#inheritance

Подпишись на Java Developer в телеграм