— Привет, Амиго! Билаабо расскажет тебе о различиях абстрактного класса и интерфейса. Их несколько.
| Абстрактный класс | Интерфейс |
|---|---|
| Наследование | |
| Абстрактный класс может унаследоваться только от одного класса и любого количества интерфейсов. | Интерфейс не может наследоваться от классов, но может от любого количества интерфейсов. |
| Абстрактные методы | |
| Абстрактный класс может содержать абстрактные методы. Но может и не содержать их вообще. | Все не статические и не default методы интерфейса – абстрактные – не содержат реализации. Интерфейс может не содержать никаких методов вообще. |
| Методы с реализацией | |
| Абстрактный класс может содержать методы с реализацией. | Интерфейс может содержать методы по умолчанию (default methods). |
| Данные | |
| Никаких ограничений. | Интерфейс содержит только public final static данные. |
| Создание объекта | |
| Нельзя создать объект абстрактного класса. | Нельзя создать объект интерфейса. |
— Вот это я понимаю. Кратко и по существу.
— Спасибо, Амиго.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ