В чём разница между abstract class и interface?

Junior
457 просмотров
AFK Offer AI

Абстрактный класс может иметь состояние (поля), конструкторы и реализованные методы. Interface до Java 8 — только абстрактные методы, с Java 8 — default и static методы, с Java 9 — private методы. Главное: класс может implements несколько интерфейсов, но extends только один абстрактный класс. Используй интерфейс для контракта (что делать), абстрактный класс — когда есть общая реализация и состояние, которое нужно шарить между наследниками.

Следующий вопрос

В чём разница между checked и unchecked exceptions?