Курс 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"

  1. Освоение Python
  2. Объединение словарей в Python
  3. Оператор «or» в Python
  4. Ввод нескольких значений
  5. Оптимизация памяти в Python
  6. Объединение словарей в Python
  7. Добавление элементов в список: append() vs extend()
  8. Нахождение самого длинного слова в списке с помощью max
  9. Утечки переменных цикла в Python 3.x
  10. Проектирование Singleton с метаклассом
  11. Иерархия классов в Python
  12. Конкатенация строк в Python
  13. Копирование в Python
  14. Преобразование кортежа в словарь.
  15. Метод join() для объединения элементов строки
  16. Измерение времени выполнения кода
  17. TON Smart Challenge #2: участие и подготовка
  18. Создание функций с произвольным количеством аргументов
  19. Блок try-except-else
  20. Функция enumerate() — Python
  21. Работа с модулем Calendar
  22. Создание словаря с значением по умолчанию
  23. Извлечение данных из JSON
  24. Поиск самого частого элемента
  25. Оператор del в Python
  26. Преобразование генераторов в циклы
  27. Отрицательные индексы списков в Python
  28. Настройка Cron
  29. Вызов функций по строке в Python.
  30. Метод округления чисел
  31. Управление пакетами с pip
  32. Генерация случайных чисел в Python
  33. Комментарии в Python
  34. Howdoi — получение ответов из терминала
  35. Работа с изображениями Pillow
  36. Запуск Python из интерпретатора
  37. Обезопасьте ввод данных
  38. Подписка на каналы разработчиков
  39. Удаление файлов и папок в Python
  40. Concrete Paths — метод .with_suffix()
  41. Пространство имен в Python
  42. Преобразование числа в список цифр
  43. Комментарии в Python
  44. Использование defaultdict в Python
  45. Локальные переменные.
  46. Отправка поздравлений по дню рождения
  47. Парсинг статей с Newspaper3k

Marketello читают маркетологи из крутых компаний