JavaRush /Курсы /Модуль 2. Java Core /Абстрактный класс vs интерфейс

Абстрактный класс vs интерфейс

Модуль 2. Java Core
4 уровень , 5 лекция
Открыта

— Привет, Амиго! Билаабо расскажет тебе о различиях абстрактного класса и интерфейса. Их несколько.

Абстрактный класс Интерфейс
Наследование
Абстрактный класс может унаследоваться только от одного класса и любого количества интерфейсов. Интерфейс не может наследоваться от классов, но может от любого количества интерфейсов.
Абстрактные методы
Абстрактный класс может содержать абстрактные методы. Но может и не содержать их вообще. Все не статические и не default методы интерфейса – абстрактные – не содержат реализации. Интерфейс может не содержать никаких методов вообще.
Методы с реализацией
Абстрактный класс может содержать методы с реализацией. Интерфейс может содержать методы по умолчанию (default methods).
Данные
Никаких ограничений. Интерфейс содержит только public final static данные.
Создание объекта
Нельзя создать объект абстрактного класса. Нельзя создать объект интерфейса.

— Вот это я понимаю. Кратко и по существу.

— Спасибо, Амиго.

Комментарии (5)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Андрей Уровень 48
20 ноября 2022
Вроде в idea дает создать обычные переменные в интефейсе. Почему тут написано, что только финал статик.
Arseniy Rigin Уровень 1 Expert
24 февраля 2024
по умолчанию, если в классе, который реализовал интерфейс, вызвать данную переменную( а она является, по факту, константой ), то при присваивание ей нового значения идея выдаст ошибку.
Владислав Уровень 89 Expert
6 ноября 2022
Не написано, что интерфейсы могут содержать private методы.
Александр Уровень 109
14 октября 2025
ага, С Java 9 можно добавлять приватные методы в интерфейсы (private и private static) для помощи внутри дефолтных/статических методов, но они не видны из других классов.
Андрей Уровень 69 Expert
10 мая 2022
Хорошая таблица, спасибо!