Назад к вопросам
Junior — Middle
72
Можно ли реализовать множественное наследование в языке Swift?
Компании, где спрашивали
Itexus
Ответ от нейросети
sobes.tech AI
В языке Swift множественное наследование классов не поддерживается. Класс может наследоваться только от одного суперкласса. Однако, Swift предоставляет возможность реализовать функциональность, похожую на множественное наследование, с помощью протоколов (protocols).
Протоколы позволяют описать набор методов и свойств, которые класс, структура или перечисление должны реализовать. Класс может соответствовать нескольким протоколам, таким образом комбинируя различные поведения.
Пример:
protocol Drivable {
func drive()
}
protocol Flyable {
func fly()
}
class Vehicle {
func start() {
print("Vehicle started")
}
}
class FlyingCar: Vehicle, Drivable, Flyable {
func drive() {
print("Driving on the road")
}
func fly() {
print("Flying in the sky")
}
}
Таким образом, Swift использует композицию через протоколы вместо множественного наследования.