Back to questions
Simbirsoft
Junior — Middle
63
Можешь привести пример, иллюстрирующий разные виды полиморфизма в объектно-ориентированном программировании?
Companies where asked
Answer from AI
sobes.tech AI
В объектно-ориентированном программировании полиморфизм позволяет объектам разных классов обрабатывать вызовы методов с одинаковым именем по-разному.
1. Полиморфизм времени компиляции (статический полиморфизм):
- Перегрузка методов — несколько методов с одним именем, но разными параметрами.
class Calculator {
func add(a: Int, b: Int) -> Int {
return a + b
}
func add(a: Double, b: Double) -> Double {
return a + b
}
}
2. Полиморфизм времени выполнения (динамический полиморфизм):
- Переопределение методов в подклассах.
class Animal {
func sound() {
print("Some sound")
}
}
class Dog: Animal {
override func sound() {
print("Bark")
}
}
class Cat: Animal {
override func sound() {
print("Meow")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // Выведет "Bark" и "Meow"
}
Таким образом, полиморфизм позволяет использовать единый интерфейс для работы с разными типами объектов.