0Pricing
Swift Academy · Урок

Наследование, переопределение и final

Создайте базовый класс, расширьте его с помощью наследования, override методы и свойства, вызывайте super и фиксируйте поведение с помощью final .

«Наследование, переопределение и final» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 3 уроков всего.

Обзор

В Swift классы поддерживают наследование. Вы можете переопределять поведение с помощью override и вызывать реализацию родительского класса. Используйте модификатор, запрещающий дальнейшие изменения, чтобы зафиксировать поведение.

Базовый класс

Создайте класс base с методом экземпляра, который подклассы смогут переопределять.

class Animal {
    var name: String
    init(name: String) { self.name = name }
    func speak() -> String { "..." }     // to be overridden
}
let a = Animal(name: "Thing")
print(a.speak())

Переопределение метода

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

class Dog: Animal {
    override func speak() -> String { "woof" }
}
let d = Dog(name: "Rex")
print(d.speak())  // "woof"

Вызов родительской реализации

Вызовите реализацию родительского класса, чтобы повторно использовать её поведение и расширить его в подклассе.

class Cat: Animal {
    override func speak() -> String {
        let base = super.speak()
        return base + " meow"
    }
}
print(Cat(name: "Mimi").speak())  // "... meow"

Переопределение и запрет изменений

Переопределяйте свойства и методы. Используйте специальный модификатор для класса или его члена, чтобы запретить дальнейшее наследование или переопределение.

class Vehicle {
    var description: String { "vehicle" }        // computed property
    func drive() { print("move") }
}
class Car: Vehicle {
    override var description: String { "car" }   // override property
    override func drive() { print("vroom") }
}
final class ElectricCar: Car {                   // cannot be subclassed
    final override func drive() { print("zzzz") } // cannot be overridden further
}
let e = ElectricCar()
print(e.description)
e.drive()

Примечания и советы

Примечания:

  • Предпочитайте композицию глубоким иерархиям.
  • Помечайте классы или их члены как неизменяемые для наследования, если не планируете расширение через подклассы.
  • Всегда используйте override, заменяя поведение базового класса.

Запрет наследования

Быстрая проверка: какое ключевое слово запрещает создание подклассов и переопределение?

Итоги

Итоги: определите класс base, переопределяйте override методы и свойства в подклассах, вызывайте реализацию родительского класса для повторного использования кода и помечайте типы и члены как неизменяемые, чтобы зафиксировать поведение.

Часто задаваемые вопросы

Урок «Наследование, переопределение и final» бесплатный?

Да — полный текст урока «Наследование, переопределение и final» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.

Чему я научусь в уроке «Наследование, переопределение и final»?

Создайте базовый класс, расширьте его с помощью наследования, override методы и свойства, вызывайте super и фиксируйте поведение с помощью final . Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.

Сколько времени занимает урок «Наследование, переопределение и final»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Memberwise init и изменяющие методы
  2. Наследование, переопределение и final
  3. Управление доступом (public/internal/fileprivate/private)
← Назад к Swift Academy