如何在Swift中使用泛型对另一个类进行子类化?

移民

我的协议和类是:

protocol Named {

}

class A<T: Named> {

}

现在,我想从P创建一个类内在函数:

class B: A {

}

但是编译错误占据了它,它说:

Reference to generic type 'A' requires arguments in <...>

请告诉我如何使用泛型继承另一个类,谢谢!

桑迪普

当我看到您的代码时,看起来似乎很好,但是我不知道您在这些类中一直在做什么。这是一个简单的例子。

protocol Named{
  var firstName:String {get set}
  var lastName: String {get set}

  var fullName: String{ get }

  }

class Person: Named{

  var firstName: String
  var lastName: String

  var fullName: String{
  return "\(firstName) \(lastName)"
  }

  init(firstName: String, lastName: String){
    self.firstName = firstName
    self.lastName = lastName
  }

}

class A<T: Named>{
  var named: T

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




class B<M: Named>: A<M>{

  init(){
    let person = Person(firstName: "John", lastName: "Appleseed")
    person.fullName
    super.init(named: person as M)
  }

}



let b = B<Person>()

b.named.fullName

请注意,当从通用类继承子类时,还必须将子类也作为通用类,并且超类必须传递与子类中使用的相同的通用变量。似乎也需要显式类型转换来表示泛型(在本例中为协议),请参见类B中的初始化器。初始化子类还需要在初始化为B()时传递显式泛型类型。这是我自己的实验。可能有简单而简洁的方法来执行此操作。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java 泛型:如何扩展另一个泛型类的泛型类

来自分类Dev

在R中,如何在另一个包的类上设置泛型方法?

来自分类Dev

如何在另一个类中使用一个类?

来自分类Dev

如何在另一个XCTestCase子类中使用一个XCTestCase子类的辅助方法?

来自分类Dev

有没有办法在另一个抽象类中使用抽象泛型类?

来自分类Dev

数组和泛型类扩展了另一个类:可以在打字稿中使用吗?

来自分类Dev

如何在我子类化的类中的Swift中返回泛型类型

来自分类Dev

如何在XCTest中使用来自另一个目标的类进行测试

来自分类Dev

在Swift中将一个泛型约束到另一个泛型

来自分类Dev

使用有界的泛型类扩展另一个泛型类会产生未知类型

来自分类Dev

如何在另一个生成字节码类中使用匿名类实例

来自分类Dev

如何在类外的另一个函数中使用类的方法?

来自分类Dev

如何验证泛型在Java中扩展了另一个类/接口?

来自分类Dev

如何将C#泛型类型传递给另一个类

来自分类Dev

如何在另一个类中的一个类中使用Android getContext?

来自分类Dev

Java:如何在另一个类中使用在一个类中实例化的对象?

来自分类Dev

Python 2.7:如何在另一个类中使用一个类的对象?

来自分类Dev

如何在另一个类的方法中使用来自单独类的一个对象?

来自分类Dev

我如何在另一个类中使用一个类中的方法(是否可能)

来自分类Dev

在Swift中使用另一个类中的一个类的函数

来自分类Dev

如何将CALayer子类化以用作另一个CALayer掩码?

来自分类Dev

如何在Swift中对数组类进行子类化?

来自分类常见问题

如何在另一个Java类的Java方法中使用变量值?

来自分类Dev

如何在Typescript类中声明的函数在该类的另一个函数中使用?

来自分类Dev

如何在另一个类中使用onActivityResult

来自分类Dev

如何在另一个类中使用扩展功能?C#

来自分类Dev

如何在另一个类中使用Queue.java

来自分类Dev

OpenFL-如何在另一个类中使用addChild?

来自分类Dev

如何在python中的不同类中使用另一个类方法值?

Related 相关文章

  1. 1

    Java 泛型:如何扩展另一个泛型类的泛型类

  2. 2

    在R中,如何在另一个包的类上设置泛型方法?

  3. 3

    如何在另一个类中使用一个类?

  4. 4

    如何在另一个XCTestCase子类中使用一个XCTestCase子类的辅助方法?

  5. 5

    有没有办法在另一个抽象类中使用抽象泛型类?

  6. 6

    数组和泛型类扩展了另一个类:可以在打字稿中使用吗?

  7. 7

    如何在我子类化的类中的Swift中返回泛型类型

  8. 8

    如何在XCTest中使用来自另一个目标的类进行测试

  9. 9

    在Swift中将一个泛型约束到另一个泛型

  10. 10

    使用有界的泛型类扩展另一个泛型类会产生未知类型

  11. 11

    如何在另一个生成字节码类中使用匿名类实例

  12. 12

    如何在类外的另一个函数中使用类的方法?

  13. 13

    如何验证泛型在Java中扩展了另一个类/接口?

  14. 14

    如何将C#泛型类型传递给另一个类

  15. 15

    如何在另一个类中的一个类中使用Android getContext?

  16. 16

    Java:如何在另一个类中使用在一个类中实例化的对象?

  17. 17

    Python 2.7:如何在另一个类中使用一个类的对象?

  18. 18

    如何在另一个类的方法中使用来自单独类的一个对象?

  19. 19

    我如何在另一个类中使用一个类中的方法(是否可能)

  20. 20

    在Swift中使用另一个类中的一个类的函数

  21. 21

    如何将CALayer子类化以用作另一个CALayer掩码?

  22. 22

    如何在Swift中对数组类进行子类化?

  23. 23

    如何在另一个Java类的Java方法中使用变量值?

  24. 24

    如何在Typescript类中声明的函数在该类的另一个函数中使用?

  25. 25

    如何在另一个类中使用onActivityResult

  26. 26

    如何在另一个类中使用扩展功能?C#

  27. 27

    如何在另一个类中使用Queue.java

  28. 28

    OpenFL-如何在另一个类中使用addChild?

  29. 29

    如何在python中的不同类中使用另一个类方法值?

热门标签

归档