You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 5.9中如何正确继承泛型类?

Swift中继承泛型类的正确方式

在Swift中,继承泛型类时必须明确父类的类型参数,具体有两种实现方式:

1. 子类本身作为泛型类,传递泛型参数给父类

如果希望子类保留泛型特性,需要先在子类上声明泛型参数,再将该参数传递给父类。示例代码:

class A<T> {}

class B<T>: A<T> {}

这样子类B就具备了泛型能力,实例化时可以指定具体类型,比如let b = B<String>()。

2. 子类指定具体类型参数给父类

如果子类不需要泛型特性,可以直接给父类指定一个具体的类型,这样子类就成为普通类。示例代码:

class A<T> {}

class B: A<Int> {}

此时B继承的是A<Int>,实例化时直接用let b = B()即可。

错误原因说明

  • 第一种写法class B : A {}报错,是因为Swift要求泛型类必须通过<...>指定具体类型参数才能被继承,不能直接使用泛型类的原始名称。
  • 第二种写法class B : A<T> {}报错,是因为T没有在子类B的作用域中声明,Swift无法识别这个类型参数。

内容的提问来源于stack exchange,提问作者Runsva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:12:04