泛型类型的初始化器不会在swift中继承吗?
这是我的代码:
public class A<T : Any> { public init(n : Int) { print("A") } } public class B : A<Int> { } public class C : B { } let x = C(n: 123) 这无法编译并大喊这样的错误: repl.swift:9:9: error: 'C' cannot be constructed because it has no accessible initializers 可以编译以下代码. public class A { public init(n : Int) { print("A") } } public class B : A { } public class C : B { } let x = C(n: 123) 是否应该继承要求类型指定的泛型类型的初始值设定项? ========以下附加内容=======
还有这个
当查看第一个代码时,子类B没有定义任何指定的初始化器,它应该自动继承它的所有超类指定的初始化器,来自A< Int>.但实际上它并没有看起来连接到我. 解决方法
那个怎么样 ??我尝试使用覆盖代码和super.init,这不是错误.我认为您不必使用泛型类型的init函数.
尝试在类B和类C中放置override init函数. public override init(n:Int){????????super.init(n:n)????} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |