如何在 dart 中将 mixin 制作为密封类

问题描述 投票:0回答:1

如何使 mixin 类“C”成为密封类,不能扩展到其库之外?

class A extends B with C{}
sealed class B{}
mixin class C{}

我不希望 C 类被“A”类以外的类使用

flutter dart oop mixins sealed
1个回答
0
投票

有一些棘手的方法可以实现此目的:

将您的 mixin 标记为私有 mixin,如您所知(dart 中的隐私是库级别而不是类级别),因此它不能在库之外使用。

class A extends B with _C{}
sealed class B{}
mixin class _C{}

另一种方式,你可以将 mixin 转换为密封类,也可以达到你的目的,并实现它(dart中不允许多重继承:钻石问题

class A extends B implements C{}
sealed class B{}
sealed class C{}

最后,类 C 不能在声明它的库之外使用,可能还有其他方法来实现您的目的。有关更多信息,请参阅类修饰符参考

希望对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.