Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 20706|Ответ: 0

[Источник] C# Различия между абстрактными классами и интерфейсами

[Скопировать ссылку]
Опубликовано 21.06.2016 11:34:25 | | |
Абстрактные классы и интерфейсы
    Сходства:
    (1) может быть наследственным
    (2) не может быть инстанцировано
    (3) может содержать декларации методов
    (4) Производный класс должен реализовать нереализованный метод
    Категория:
    (1) Абстрактные базовые классы могут определять поля, свойства и реализации методов. Интерфейсы могут определять только атрибуты, индексаторы, события и объявления методов и не могут содержать поля.
    (2) Абстрактный класс — это неполный класс, требующий дальнейшей доработки, а интерфейс — это поведенческая норма. Пользовательские интерфейсы Microsoft всегда сопровождаются полем, чтобы доказать, что они являются выражением «Я могу это сделать...» ”
    (3) Интерфейсы могут быть реализованы несколько раз, а абстрактные классы могут наследоваться только одним человеком
    (4) Абстрактные классы более определяются между рядом тесно связанных классов, тогда как большинство интерфейсов — это слабо связанные классы, которые реализуют определённую функцию
    (5) Абстрактные классы — это понятия, абстрагированные из ряда связанных объектов, поэтому они отражают внутреннюю общность вещей; Интерфейс — это функциональная конвенция, определённая для удовлетворения внешних вызовов, то есть отражает внешние характеристики объектов
    (6) Интерфейс по сути не обладает конкретными характеристиками наследования, он лишь обещает методы, которые можно вызвать   
    (7) Интерфейсы могут использоваться для поддержки обратных вызовов, но наследование не обладает этой функцией
    (8) Конкретные методы, реализованные абстрактными классами, по умолчанию являются виртуальными, но методы интерфейса в классе, реализующие интерфейс, по умолчанию не являются виртуальными, конечно, их также можно объявить виртуальными
    (9) Если абстрактный класс реализует интерфейс, метод в интерфейсе может быть отображен в абстрактный класс как абстрактный метод без необходимости его реализации, а метод в интерфейсе может быть реализован в подклассе абстрактного класса








Предыдущий:Произошла ошибка системы номер 5. Доступ запрещён.
Следующий:Провайдер 'Microsoft.Jet.OleDb.4.0' не зарегистрирован на локальном компьютере.
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com