Sobes.tech
Back to questions
Junior — Middle
94

Объясни, что такое абстрактные классы в объектно-ориентированном программировании.

Companies where asked
ИНДИНС

Answer from AI

sobes.tech AI

Абстрактный класс — это класс, который не предназначен для создания экземпляров напрямую, а служит как базовый класс для других классов. Он может содержать как реализованные методы, так и абстрактные (без реализации), которые должны быть переопределены в наследниках.

В PHP абстрактный класс объявляется с помощью ключевого слова abstract. Если класс содержит хотя бы один абстрактный метод, он должен быть объявлен как абстрактный.

Пример:

abstract class Animal {
    abstract public function makeSound();

    public function sleep() {
        echo "Спит...";
    }
}

class Dog extends Animal {
    public function makeSound() {
        echo "Гав-гав";
    }
}

$dog = new Dog();
$dog->makeSound(); // Выведет "Гав-гав"
$dog->sleep(); // Выведет "Спит..."

Абстрактные классы помогают создавать общий интерфейс и базовую функциональность для группы связанных классов.