gpt4 book ai didi

dart - 为什么没有覆盖方法时使用 'covariant'?

转载 作者:行者123 更新时间:2023-12-04 02:28:06 24 4
gpt4 key购买 nike

来自 here :

bool shouldReclip(covariant CustomClipper<T> oldClipper);

AFAIK,关键字covariant 用于重写一个方法,明确告诉分析器您将为其提供一个有效类型。但是在 CustomClipper 类中,没有这样的覆盖,那么为什么要使用 covariant 呢?

最佳答案

您可以将参数标记为 covariant在父类(super class)中,然后子类自动获得标记为 covariant 的参数也是。

如果要扩展该类,这可以是为子类作者提供的服务(和文档),以便他们知道该参数应该协变地使用。

如果你看this subclass ,你可以看到他们声明:

@override
bool shouldReclip(_DecorationClipper oldClipper) {...}

协变地覆盖参数类型 CustomClipper<Path>_DeclarationClipper (实现 CustomClipper<Path> ),他们不必写 covariant在这里是因为父类(super class)为他们声明了它。

关于dart - 为什么没有覆盖方法时使用 'covariant'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65958413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com