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

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

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

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

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

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

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

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

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

 

Посилання на основну публікацію