Я хотел бы переопределить метод, который объявлен в рамках и реализован в расширении.
Вот что я пробовал:
import UIKit
// Code from a dependency
class Object { // UIViewController
func printSomething() {
print("something")
}
}
// My code
protocol SayHelloProtocol {
func hello()
func name() -> String
}
extension SayHelloProtocol {
func hello() {
print("Hello " + name())
}
func name() -> String {
"someone"
}
}
class MyHelloObject: Object, SayHelloProtocol {
override func printSomething() {
hello()
}
}
class MyHelloChildObject: MyHelloObject {
func name() -> String {
"You"
}
}
MyHelloObject().printSomething()
MyHelloChildObject().printSomething()
Это напечатает:
Hello someone
Hello someone
Но я бы хотел переопределить метод, чтобы он печатал:
Hello someone
Hello You
Можно ли переопределить метод, реализованный в расширении?