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

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

Открыта

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

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

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

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

Комментарии (311)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Euraks Backend Developer
13 октября, 06:24
Класс - состояние Интерфейс - поведение
Grigoryvvv
Уровень 28
Expert
11 августа, 09:08
11.08.2026 / 23 уровень
Rei
Уровень 32
25 февраля, 20:55
Как же радостно, что Java Syntax Pro без всех этих персонажей
Anonymous #3585174
Уровень 33
5 августа 2025, 14:48
like
KPR500
Уровень 33
31 января 2025, 06:59
;)
Philipp Vasichev
Уровень 28
1 сентября 2024, 08:39
🤫
FolFix
Уровень 38
23 августа 2024, 18:34
Лучшие!
{Java_Shark}
Уровень 36
7 августа 2024, 09:18
++
Anonymous #2277416
Уровень 13
1 января 2024, 19:46
Интерфейс содержит только public final static данные... Все переменные в интерфейсах неявно являются public static final (т.е. константами). Методы в интерфейсах могут быть private, если они имеют реализацию. Источник (рекомендую): Различия между абстрактными классами и интерфейсами в Java
Евгений Шергунов
Уровень 36
Expert
26 января 2024, 14:13
Очень годная статья, спасибо
JavaRusher853
Уровень 36
19 марта 2024, 21:01
*Методы в интерфейсах могут быть private, если они имеют реализацию. Не если, private методы обязаны иметь реализацию, иначе компилятор кинет исключение.
rya_lt
Уровень 27
6 мая 2024, 08:38
большое спасибо, отличный материал
SomeBody098веник в бане
11 мая 2024, 11:04
I so blagoderen
KemaOnesBackend Developer в Google
23 июля 2024, 22:22
Кто то проходил стажировку у этих ребят? Стоит того?
Anonymous #3513637
Уровень 25
24 января 2025, 15:38
об этом и речь
JavaPure
Уровень 23
12 декабря 2023, 11:30
А где более продвинутый паскаль?