Чим відрізняється абстрактний клас від інтерфейсу?
У програмуванні використовуються поняття абстрактного класу і інтерфейсу. В чому полягають їх особливості? Чим відрізняється абстрактний клас від інтерфейсу?
Відео: Інтерфейси і абстрактні класи
- У чому специфіка абстрактного класу в програмуванні?
- Що таке інтерфейс?
- Різниця між абстрактним класом і інтерфейсом
- Порівняльна таблиця
У чому специфіка абстрактного класу в програмуванні?
У числі основних ознак абстрактного класу - наявність реалізації. При цьому в ньому може бути присутнім один або кілька її методів. В абстрактному класі є властивості, що мають модифікатори доступу. Крім того, розглянута категорія даних передбачає:
- застосування методу extend;
- опис конструктора;
- використання різних типів даних - зокрема, статичних, або ж констант;
- незалежність реалізації успадкованого абстрактного класу від батьківського.
Що таке інтерфейс?
інтерфейс, в свою чергу, не містить реалізації. У ньому присутній опис в чистому вигляді - як сукупність методів, що підлягають реалізації в конкретному класі, за допомогою якого здійснюється імплементація того чи іншого інтерфейсу.
Відео: Абстрактний клас vs Інтерфейс
Вже згадана категорія даних також передбачає:
Відео: Java # 17 - абстрактні класи, інтерфейси, поліморфізм
- наявність тільки тих констант, які класифікуються як загальнодоступні;
- застосування методу implement;
- відтворення всіх методів інтерфейсу в процесі його реалізації.
Відзначимо, що в інтерфейсі не провадиться опис конструктора.
Різниця між абстрактним класом і інтерфейсом
Очевидно, що є не одне відміну абстрактного класу від інтерфейсу. Різниця між ними простежується в самих різних аспектах. Найбільш наочно їх можна побачити при зіставленні абстрактного класу і інтерфейсу за такими основними критеріями:
- спадкування;
- реалізація;
- використання конструктора.
Відобразити те, в чому різниця між абстрактним класом і інтерфейсом простежується в співвіднесенні з зазначеними критеріями, нам допоможе невелика таблиця.
Порівняльна таблиця
абстрактний клас | інтерфейс |
Тільки один абстрактний клас успадковується іншим класом | Кілька інтерфейсів може бути реалізовано будь-яким класом |
Допускає реалізацію методів | Передбачає виключно опис методів |
Допускає створення конструктора | Чи не передбачає створення конструкторів |