Какое ключевое слово в Swift используется для переопределения метода?

«Какое ключевое слово в Swift используется для переопределения метода?» — вопрос из категории ООП, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Swift для переопределения метода, свойства или сабскрипта суперкласса используется ключевое слово override.

Зачем это нужно:

  • Гарантирует, что переопределение является намеренным, а не случайной опечаткой.
  • Если в суперклассе нет такого элемента, компилятор выдаст ошибку, предотвращая логические ошибки.
  • Для запрета переопределения в суперклассе используется ключевое слово final.

Пример:

class Vehicle {
    func makeSound() {
        print("Some generic sound")
    }
}

class Car: Vehicle {
    // Использование override обязательно
    override func makeSound() {
        print("Beep beep!")
    }
}

let myCar = Car()
myCar.makeSound() // Вывод: "Beep beep!"

Без override код func makeSound() {...} в классе Car будет воспринят как новый метод, а не переопределение, что может привести к неожиданному поведению.