Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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