Кира
Абстрактный класс - это класс, созданный исключительно для того, чтобы быть родительским классом для нескольких подклассов и для определения некоторых общих методов и атрибутов, которые наследуются подклассами. Мы никогда не будем создавать объект из абстрактного класса, это отправная точка, из которой мы будем создавать другие классы (которые могут быть созданы).
Например, при моделировании банка вы должны создать абстрактный класс с именем account, а затем подклассы, такие как сберегательный счет, депозитный счет, бизнес-счет. Абстрактный класс может иметь некоторые абстрактные методы и некоторые реальные методы, а также некоторые атрибуты.
интерфейсы очень похожи на абстрактные классы, с одним важным отличием - ВСЕ его методы должны быть абстрактными, у них НЕТ тела, только имя, список параметров и тип результата. Когда что-то наследуется от интерфейса, вы должны затем определить основной код абстрактных методов в интерфейсе. Интерфейс - это фактически шаблон, ожидающий добавления деталей. Когда другой класс реализует интерфейс, вы говорите: «Я собираюсь использовать все эти пустые методы, но напишу собственный основной код для каждого из них». Хотя в абстрактном классе уже может быть основной код.