Какая разница между абстрактным классом и интерфейсом?
Абстрактный класс:
☕ абстрактные классы имеют дефолтный конструктор; он вызывается каждый раз, когда создается потомок этого абстрактного класса;
☕ содержит как абстрактные методы, так и не абстрактные. По большому счету может и не содержать абстрактных методов, но все равно быть абстрактным классом;
☕ класс, который наследуется от абстрактного, должен реализовать только абстрактные методы;
☕ абстрактный класс может содержать Instance Variable.
Интерфейс:
☕ не имеет никакого конструктора и не может быть инициализирован;
☕ только абстрактные методы должны быть добавлены (не считая default methods);
☕ классы, реализующие интерфейс, должны реализовать все методы (не считая default methods);
☕ интерфейсы могут содержать только константы.
Post #94
2.15K
- 👍 13