Чим відрізняється абстрактний клас від інтерфейсу?

У програмуванні використовуються поняття абстрактного класу і інтерфейсу. У чому полягають їх особливості? Чим відрізняється абстрактний клас від інтерфейсу?

У чому специфіка абстрактного класу в програмуванні?
У числі основних ознак абстрактного класу – наявність реалізації. При цьому в ньому може бути присутнім один або кілька її методів. В абстрактному класі є властивості, що мають модифікатори доступу. Крім того, розглянута категорія даних передбачає:

    Застосування методу extend; Опис конструктора; Використання різних типів даних – зокрема, статичних, або ж констант; Незалежність реалізації успадкованого абстрактного класу від батьківського.

Що таке інтерфейс?
Інтерфейс, в свою чергу, не містить реалізації. У ньому присутній опис в чистому вигляді – як сукупність методів, що підлягають реалізації в конкретному класі, за допомогою якого здійснюється імплементація того чи іншого інтерфейсу.

Вже згадана категорія даних також передбачає:

    Наявність тільки тих констант, які класифікуються як загальнодоступні; Застосування методу implement; Відтворення всіх методів інтерфейсу в процесі його реалізації.
    Відзначимо, що в інтерфейсі не провадиться опис конструктора.

Різниця між абстрактним класом і інтерфейсом
Очевидно, що є не одне відміну абстрактного класу від інтерфейсу. Різниця між ними простежується в самих різних аспектах. Найбільш наочно їх можна побачити при зіставленні абстрактного класу і інтерфейсу за такими основними критеріями:

    Успадкування; Реалізація; Використання конструктора.

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 2.50 out of 5)

Чим відрізняється абстрактний клас від інтерфейсу?