Ответ
Да, Swift поддерживает наследование классов. Это механизм, при котором один класс (подкласс, child class) может наследовать свойства, методы и другие характеристики другого класса (суперкласса, parent class).
Базовый пример:
class Vehicle { // Суперкласс
var currentSpeed = 0.0
func makeSound() {
print("Some generic vehicle sound")
}
}
class Bicycle: Vehicle { // Подкласс
var hasBasket = false
}
let bike = Bicycle()
bike.currentSpeed = 15.0 // Свойство унаследовано от Vehicle
bike.makeSound() // Метод унаследован от Vehicle
Ключевые особенности наследования в Swift:
- Одиночное наследование: Класс может наследоваться только от одного суперкласса.
- Переопределение: Подкласс может предоставить свою собственную реализацию метода, свойства, инициализатора или сабскрипта суперкласса, используя ключевое слово
override.class Train: Vehicle { override func makeSound() { print("Choo Choo!") } } - Запрет наследования: Ключевое слово
finalпредотвращает переопределение метода/свойства или наследование от всего класса.final class FinalClass { } // Этот класс не может иметь подклассов - Только для классов: Структуры (
struct) и перечисления (enum) не поддерживают наследование.