此页面包含类修饰符的参考信息。
有效组合
类修饰符及其生成的功能的有效组合包括:
Declaration | Construct? | Extend? | Implement? | Mix in? | Exhaustive? |
---|---|---|---|---|---|
class | Yes | Yes | Yes | No | No |
base class | Yes | Yes | No | No | No |
interface class | Yes | No | Yes | No | No |
final class | Yes | No | No | No | No |
sealed class | No | No | No | No | Yes |
abstract class | No | Yes | Yes | No | No |
abstract base class | No | Yes | No | No | No |
abstract interface class | No | No | Yes | No | No |
abstract final class | No | No | No | No | No |
mixin class | Yes | Yes | Yes | Yes | No |
base mixin class | Yes | Yes | No | Yes | No |
abstract mixin class | No | Yes | Yes | Yes | No |
abstract base mixin class | No | Yes | No | Yes | No |
mixin | No | No | Yes | Yes | No |
base mixin | No | No | No | Yes | No |
无效组合
不允许使用某些修饰符组合:
组合 | 推理 |
---|---|
base 、 和 interface final | 全部控制相同的两个功能( 和 ),因此是互斥的。 extend implement |
sealed 和 abstract | 两者都无法构造,因此在一起是多余的。 |
sealed 与 、 或 base interface final | sealed 类型已经不能在另一个库中混合、扩展或实现,因此与列出的修饰符组合是多余的。 |
mixin 和 abstract | 两者都无法构造,因此在一起是多余的。 |
mixin 和、、 或 interface final sealed | A or 声明旨在混合,而列出的修饰符会阻止这种情况。 mixin mixin class |
enum 和任何修饰符 | enum 声明无法扩展、实现、混合,并且始终可以实例化,因此修饰符不适用于声明。 enum |