Курс Python → Переопределение метода
Переопределение в Python — это механизм, который позволяет изменить поведение метода в дочернем классе, переопределяя его в базовом классе. Это позволяет классам наследовать методы и свойства от других классов, но при необходимости изменить их поведение. Например, если у нас есть базовый класс Animal с методом make_sound(), который возвращает просто «Издает звук», мы можем создать дочерний класс Cat, где переопределим метод make_sound() так, чтобы он возвращал «Мяу», а также дочерний класс Dog, где метод make_sound() вернет «Гав».
Для переопределения метода в Python достаточно объявить метод с тем же именем в дочернем классе, что и в базовом классе. Таким образом, при вызове метода make_sound() для объектов класса Cat будет использоваться переопределенная версия метода из класса Cat, а для объектов класса Dog — из класса Dog. Это позволяет добиться более точного и специфичного поведения методов в зависимости от конкретного класса.
class Animal:
def make_sound(self):
return "Издает звук"
class Cat(Animal):
def make_sound(self):
return "Мяу"
class Dog(Animal):
def make_sound(self):
return "Гав"
cat = Cat()
dog = Dog()
print(cat.make_sound()) # Вывод: Мяу
print(dog.make_sound()) # Вывод: Гав
В данном примере мы создали базовый класс Animal с методом make_sound(), который возвращает просто «Издает звук». Затем мы создали два дочерних класса Cat и Dog, где переопределили метод make_sound() для каждого класса, чтобы он возвращал соответствующий звук для каждого животного. При создании объектов cat и dog и вызове метода make_sound() для каждого из них, мы получаем ожидаемые результаты — «Мяу» для объекта cat и «Гав» для объекта dog.
Другие уроки курса "Python"
- Резервирование символов в Python
- lru_cache оптимизация функций
- Генераторы по генератору
- Работа с модулем os в Python
- Логирование с Loguru
- Работа с CSV файлами в Python
- Метод gt в Python
- Оформление кода на Python
- Печать комбинаций в Python с Itertools
- 9 уловок для чистого кода
- Counter() — подсчет элементов
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Метод ifloordiv для пользовательских классов
- Перехват исключений в Python
- Транспонирование 2D-массива с помощью zip
- Проверка памяти объекта
- Округление в Python
- Замена подстроки
- Работа с комплексными числами
- Разделение функций на этапы
- Функции all() и any() в Python
- Встроенные функции Python
- Частичное совпадение пользовательского ввода в Python 3.10
- Введение в Python
- Декодирование байтов в строку
- Объединение словарей в Python 3.5+
- Python Метод del.
- Работа с файловой системой в Python
- Уникальные значения из списка
- Манипуляция формой массива в Numpy
- Регулярные выражения: метод match
- Изучение объектов с помощью dir()
- Область видимости переменных в Python
- Работа с множествами в Python
- Генераторы в Python
- Активация Matplotlib в Jupyter
- Установка и использование pyshorteners
- Параллельные вычисления в Python
- Python: динамическая типизация и проверка типов
- Работа с итераторами в Python
- *args и **kwargs в Python
- Оператор += в Python
- Непрерывная проверка в Python
- Цикл for с enumerate() в Python
- Установка и использование библиотеки google
- Объединение строк с помощью метода join
- Замена переменных в Python















