Avatar
omochimetaru 8/2/2018 9:43 AM
extension AnimalProtocol { init(_with obj: Self) { self = obj } } class AnimalBase : AnimalProtocol { convenience init(with obj: AnimalBase) { self.init(_with: obj) } } おかしいのは、ここで self.init(_with: ) が呼び出せてしまうことじゃないですか?
9:44 AM
AnimalProtocolが引数に受けてる Self は、 AnimalBase が final で無いのだから
9:44 AM
何かのサブクラスである可能性があって (たとえばCat ) なのに、 obj: AnimalBase を渡せてしまっている