从泛型类继承初始化程序

Ganzogo

我已经看到了有关此问题的一些讨论,但尚未阅读满意的解释。谁能告诉我为什么这不起作用?

class Parent<T> {

  var data:T

  init(data:T) {
    self.data = data
  }
}

class Child : Parent<Int> {}

let c = Child(data: 4)

最后一行给出了错误:

'Child' cannot be constructed because it has no accessible initializers

我真的需要实现初始化方法来调用super吗?

编辑:

为了提供一些上下文,实际代码看起来更接近下面的代码。我有一个Action使用泛型类,因为我还有一点代码可以将动作链接在一起,并且我想使用Swift的类型安全性来确保动作可以链接。然后,我有一堆子类(例如CustomAction)。我正在寻找一种避免init在每个子类中覆盖该方法的方法。或者,我想了解为什么这不可能。

class Action<Input, Output> {

  var cachedOutput:Output?

  init(cachedOutput:Output?) {
    self.cachedOutput = cachedOutput
  }
}

protocol CustomInput {}
protocol CustomOutput {}

class CustomAction : Action<CustomInput, CustomOutput> {
}
Ganzogo

现在可以在Swift 3中使用。现在可以编译我的原始示例。Swift 3语言更改中没有提到这一点,因此我只能假定这是一个错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

泛型类不调用重写的初始化程序

来自分类Dev

泛型类不调用重写的初始化器

来自分类Dev

在Typescript中的泛型类中初始化泛型类型

来自分类Dev

java数组泛型初始化

来自分类Dev

无法初始化嵌套泛型

来自分类Dev

Python类继承初始化

来自分类Dev

C#如何使用类型为“类型”的对象初始化泛型类

来自分类Dev

C#如何使用类型为“类型”的对象初始化泛型类

来自分类Dev

Swift泛型:没有可访问的初始化程序

来自分类Dev

无法为泛型类型的子类调用初始化程序

来自分类Dev

如何在初始化程序中获取约束泛型的动态分配

来自分类Dev

第二个初始化程序使用的SwiftUI泛型

来自分类Dev

Swift泛型:没有可访问的初始化程序

来自分类Dev

Swift中的子类不会继承其超类的初始化程序

来自分类Dev

在构造函数中初始化静态泛型列表

来自分类Dev

如何在Rust中初始化泛型变量

来自分类Dev

如何在Swift中使用约束为泛型类型和协议的属性来初始化类

来自分类Dev

泛型与类继承的混淆

来自分类Dev

带有类继承的未初始化常量错误

来自分类Dev

继承时需要初始化父类吗?

来自分类Dev

嵌套继承问题-如何初始化父类?

来自分类Dev

无需显式初始化父类的虚拟继承

来自分类Dev

继承初始化类中的Swift错误

来自分类Dev

如何在Python中初始化继承的类

来自分类Dev

继承时需要初始化父类吗?

来自分类Dev

从类继承私有的初始化?

来自分类Dev

Swift 初始化器和类继承

来自分类Dev

从另一个泛型枚举初始化泛型Swift枚举?

来自分类Dev

从另一个泛型枚举初始化泛型Swift枚举?