Как сделать чтобы суперкласс не срабатывал в swift?

Пользователь

от mona_terry , в категории: Swift , месяц назад

Как сделать чтобы суперкласс не срабатывал в swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jett , месяц назад

@mona_terry 

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


Например, если у вас есть суперкласс ParentClass с методом someMethod, и вы хотите переопределить этот метод в подклассе ChildClass, вы можете сделать это следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class ParentClass {
    func someMethod() {
        print("This is the parent method.")
    }
}

class ChildClass: ParentClass {
    override func someMethod() {
        print("This is the child method.")
    }
}


Здесь мы используем ключевое слово override, чтобы указать, что мы переопределяем метод someMethod из суперкласса ParentClass. Если мы не используем override, то компилятор Swift выдаст ошибку, потому что мы пытаемся переопределить метод, который не был определен в текущем классе.


Аналогично, если вы хотите переопределить свойство из суперкласса, вы также должны использовать ключевое слово override.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class ParentClass {
    var someProperty: String = "Hello"
}

class ChildClass: ParentClass {
    override var someProperty: String {
        get {
            return "Hi"
        }
        set {
            super.someProperty = newValue
        }
    }
}


Здесь мы переопределяем свойство someProperty и используем override для указания того, что мы переопределяем свойство из суперкласса. В блоке get мы возвращаем строку "Hi" вместо "Hello", которая была определена в суперклассе. В блоке set мы также вызываем метод super.someProperty = newValue, чтобы установить значение свойства в суперклассе.