Класс B является подклассом класса А (B : A)
Метод Override не называется?
Я инициализирует класс как B.init()
При вызове в А, перекрываться method(
) никогда не вызывается, если я использую бросок:
class A {
...
self.method() //A method called
(self as! B).method() //B method called
}
Почему ?
Поскольку я инициализирую экземпляр как B, я ожидаю, что он вызывает метод overriden, но это не так, если только я не использую актерский состав.
Я думаю, что есть что-то происходит, что не очевидно, от того, что вы опубликовали. В простейшем случае будет вызываться метод B. –
Дубликат [Переопределение методов в расширениях Swift] (http://stackoverflow.com/questions/38213286/overriding-methods-in-swift-extensions) ([см. Ниже поток комментариев] (http://stackoverflow.com/questions/38996783/overriden-method-not-called # comment65346443_38997022)) – Hamish