Решил собрать в одну таблицу различия между abstract class и interface.
| Abstract Class | Interface |
|---|---|
| Абстрактные методы нужно указывать явно с помощью ключевого слова abstract | Все методы являются абстрактными |
| В силу отсутствия множественного наследования, класс может наследовать только один абстрактный класс, но может наследовать много интерфейсов, и все это одновременно | Может наследовать много интерфейсов, но не может наследовать класс |
| Абстрактные методы можно объявлять с идентификаторами доступа (public, protected, private). При реализации в классе-потомке методы должны иметь такой же модификатор или менее ограниченный | Все методы публичные |
| Может содержать: методы с реализацией, поля члены данных, константы. | Может содержать константы |
| В наследуемом от класса классе константа может быть переопределена | В наследуемом от класса классе константа НЕ может быть переопределена |
Как видите отличия есть и они существенны, удачки в освоении.
Комментарии
Комментариев пока нет.