Проверяет знание модификатора final, который ограничивает переопределение и наследование.
Ключевое слово final запрещает переопределение метода, свойства или наследование от класса.
final class — нельзя унаследовать:
final class A {}
class B: A {} // Ошибкаfinal func или final var — нельзя переопределить в подклассе:
class A {
final func greet() {}
}
class B: A {
override func greet() {} // Ошибка
}Зачем использовать:
Повышает безопасность.
Улучшает производительность (компилятор не добавляет динамическую диспетчеризацию).
Защищает API от неправильного расширения.