У нас есть классы "Собака" и "Кот", которые оба наследуются от класса "Животное". У класса "Животное" есть метод "издать звук". Когда мы вызываем метод "издать звук" для объекта класса "Собака", он будет издавать звук "Гав-гав", а когда вызываем метод для объекта класса "Кот", он будет издавать звук "Мяу".
class Животное: def идти(self): pass def издать_звук(self): pass class Собака(Животное): def издать_звук(self): print("Гав-гав") class Кот(Животное): def издать_звук(self): print("Мяу") # Создание объектов собака = Собака() кот = Кот() # Вызов методов собака.издать_звук() # Вывод: "Гав-гав" кот.издать_звук() # Вывод: "Мяу"Полиморфизм функций:
У нас есть функция "вычислить_площадь", которая принимает на вход объект - фигуру. Мы можем передать функции как объект класса "Прямоугольник", так и объект класса "Круг". В зависимости от типа переданного объекта, функция будет вычислять площадь соответствующим образом.
class Фигура: def вычислить_площадь(self): pass class Прямоугольник(Фигура): def __init__(self, длина, ширина): self.длина = длина self.ширина = ширина def вычислить_площадь(self): return self.длина * self.ширина class Круг(Фигура): def __init__(self, радиус): self.радиус = радиус def вычислить_площадь(self): return 3.14 * self.радиус ** 2 # Функция, использующая полиморфизм def вычислить_площадь_фигуры(фигура): return фигура.вычислить_площадь() # Создание объектов прямоугольник = Прямоугольник(5, 10) круг = Круг(5) # Вызов функции print(вычислить_площадь_фигуры(прямоугольник)) # Вывод: 50 print(вычислить_площадь_фигуры(круг)) # Вывод: 78.5
Надеюсь, эти примеры помогли вам лучше понять полиморфизм в объектно-ориентированной разработке.
Конечно, вот два простых примера полиморфизма:
Полиморфизм методов:У нас есть классы "Собака" и "Кот", которые оба наследуются от класса "Животное". У класса "Животное" есть метод "издать звук". Когда мы вызываем метод "издать звук" для объекта класса "Собака", он будет издавать звук "Гав-гав", а когда вызываем метод для объекта класса "Кот", он будет издавать звук "Мяу".
class Животное:def идти(self):
pass
def издать_звук(self):
pass
class Собака(Животное):
def издать_звук(self):
print("Гав-гав")
class Кот(Животное):
def издать_звук(self):
print("Мяу")
# Создание объектов
собака = Собака()
кот = Кот()
# Вызов методов
собака.издать_звук() # Вывод: "Гав-гав"
кот.издать_звук() # Вывод: "Мяу"Полиморфизм функций:
У нас есть функция "вычислить_площадь", которая принимает на вход объект - фигуру. Мы можем передать функции как объект класса "Прямоугольник", так и объект класса "Круг". В зависимости от типа переданного объекта, функция будет вычислять площадь соответствующим образом.
class Фигура:def вычислить_площадь(self):
pass
class Прямоугольник(Фигура):
def __init__(self, длина, ширина):
self.длина = длина
self.ширина = ширина
def вычислить_площадь(self):
return self.длина * self.ширина
class Круг(Фигура):
def __init__(self, радиус):
self.радиус = радиус
def вычислить_площадь(self):
return 3.14 * self.радиус ** 2
# Функция, использующая полиморфизм
def вычислить_площадь_фигуры(фигура):
return фигура.вычислить_площадь()
# Создание объектов
прямоугольник = Прямоугольник(5, 10)
круг = Круг(5)
# Вызов функции
print(вычислить_площадь_фигуры(прямоугольник)) # Вывод: 50
print(вычислить_площадь_фигуры(круг)) # Вывод: 78.5
Надеюсь, эти примеры помогли вам лучше понять полиморфизм в объектно-ориентированной разработке.