Лабораторно упражнение 6
Абстрактни класове и интерфейси
Абстракцията е процес, при който се показва само „подходящи“ данни и се „скриват“ ненужни детайли за обекта от потребителя (програмиста който ползва абстракцията).
Тъй като абстрактният клас позволява конкретна имплементация на методи, той не осигурява 100% абстракция. Той осигурява частична абстракция.
Интерфейсите от друга страна се използват за 100% абстракция.
Абстрактен клас | Интерфейс |
---|---|
Един абстрактен клас може да разшири само един клас или един абстрактен клас в даден момент | Един интерфейс може да разшири произволен брой интерфейси наведнъж |
Един абстрактен клас може да разшири друг конкретен (редовен) клас или абстрактен клас | Един интерфейс може само да разшири друг интерфейс |
Абстрактният клас може да има както абстрактни, така и конкретни методи | Интерфейсът може да има само абстрактни методи |
В абстрактния клас ключова дума „abstract“ е задължителна за деклариране на метод като абстракт | В интерфейса ключова дума „абстрактно“ е по избор за деклариране на метод като абстракт |
Един абстрактен клас може да има защитени и публични абстрактни методи | Интерфейсът може да има само публични абстрактни методи |
Един абстрактен клас може да има static, final или static final променлива с всеки спецификатор за достъп | интерфейсът може да има само public static final (константна) променлива |
Last updated