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