Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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