Junior — Middle
Какви са основните функции и приложения на абстрактните класове в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от AI
Абстрактните класове в обектно-ориентираното програмиране са класове, които не са предназначени за създаване на екземпляри директно, а служат като базови шаблони за други класове.
Основни функции на абстрактните класове:
- Определяне на общ интерфейс и базово поведение за група свързани класове.
- Възможност за обявяване на абстрактни методи (без реализация), които трябва да бъдат реализирани от подкласовете.
- Позволяват частична реализация на функционалността, която наследяват дъщерните класове.
Приложимост:
- Когато е необходимо да се зададе общ договор за различни реализации.
- Когато част от логиката е обща, а друга трябва да бъде реализирана в наследниците.
Пример на Java:
abstract class Animal {
abstract void makeSound(); // абстрактен метод
void breathe() {
System.out.println("Диша");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("Гав-гав");
}
}
Тук Animal не може да бъде създаден директно, но може да се създаде Dog, който реализира метода makeSound.