Абстрактные классы - это частично реализованные классы, которые будут расширены конкретными классами (не абстрактными) для реализации.
Пример:
Этот пример не означает, чтоподклассы должны реализовывать эти методы (как это происходит при реализации интерфейса).Вы можете объявить реферат подкласса, и реализация будет сделана позже другим подклассом.(Например: Boat может иметь подклассы «SpeedBoat» и FisshingBoat, и может реализовывать honk () по-разному)
Интерфейс - это взгляд класса на внешний мир.То, что могут делать классы, объявлено в интерфейсе, но реализовано в классе.
Класс может реализовывать много интерфейсов, но может расширять только один класс.Посмотрите на этот небольшой пример интерфейсов:
Как вы можете видеть, когда мы используем интерфейсы, мы можем иметь большую гибкость.Некоторые враги могут делать то же, что и некоторые герои (DarkKnight может бросать стрелы).Я надеюсь, что теперь вы чувствуете разницу между абстрактными классами и интерфейсами.
Помните об интерфейсах и абстрактных классах:
Интерфейсы не имеют переменных, только не реализованные методынеявные абстрактные методы)
Классы, реализующие интерфейсы, должны иметь все методы интерфейса в своем теле
Один класс может расширять только один классно реализуйте более одного интерфейса
Если у класса есть абстрактный метод, он должен быть объявлен как абстрактный.
Абстрактные классы могут реализовывать интерфейсы
Интерфейсы могут расширять другие интерфейсы (более одного)
Я не знаю, если я что-то забуду, надеюсь, эта информация поможет.