какая разница между абстрактным классом и интерфейсом, ведь и тот и тот требует от своих дочерних классов реализации абстрактных/объявленных членов.
- Абстрактный класс может содержать в себе реализацию методов, интерфейс не может (при наследовании от абстрактного класса происходит как наследование реализации так и наследование абстракции)
- Абстрактный метод является неявным виртуальным методом, его реализация предоставляется методом переопределения override, который является членом не абстрактного (конкретного) класса - для реализации метода объявленного в интерфейсе нужно только создать метод с идентичной сигнатурой, модификатором доступа, типом возвращаемого значения.
- класс может реализовать (наследоваться) несколько интерфейсов, но только 1 класс (абстрактный или же конкретный)
- члены интерфейсов автоматически являются открытыми, абстрактными, и они не
могут иметь модификаторов доступа в отличии от абстрактных членов - интерфейсы не могут содержать константы, поля, операторы, конструкторы
экземпляров, деструкторы или вложенные типы (интерфейсы в том числе)
Спасибо!!! Стало намного понятнее)