В чем разница между абстрактным классом и обычным классом
Python
Middle
Вкусно и точка
В чем разница между абстрактным классом и обычным классом
Ответы
Абстрактный класс в Python — это класс, который не предназначен для создания экземпляров напрямую, а служит шаблоном для других классов. Он может содержать абстрактные методы (без реализации), которые должны быть переопределены в дочерних классах. Обычный класс можно инстанциировать и использовать напрямую.
Ключевые отличия:
- Абстрактный класс требует наследования, обычный — нет.
- Абстрактный класс может содержать абстрактные методы (@abstractmethod), обычный — нет.
- Абстрактный класс нельзя инстанциировать напрямую (вызовет TypeError).
Пример:
```
from abc import ABC, abstractmethod
class AbstractAnimal(ABC):
@abstractmethod
def make_sound(self):
pass
class Dog(AbstractAnimal):
def make_sound(self):
return "Woof!"
# animal = AbstractAnimal() # Ошибка!
dog = Dog() # OK
print(dog.make_sound()) # Woof!
```