類別修飾詞參考
本頁包含類別修飾詞的參考資訊。
有效的組合
#類別修飾詞的有效組合及其產生的功能如下
宣告 | 建構? | 擴充? | 實作? | Mix in? | 詳盡? |
---|---|---|---|---|---|
class | 是 | 是 | 是 | 否 | 否 |
base class | 是 | 是 | 否 | 否 | 否 |
interface class | 是 | 否 | 是 | 否 | 否 |
final class | 是 | 否 | 否 | 否 | 否 |
sealed class | 否 | 否 | 否 | 否 | 是 |
abstract class | 否 | 是 | 是 | 否 | 否 |
abstract base class | 否 | 是 | 否 | 否 | 否 |
abstract interface class | 否 | 否 | 是 | 否 | 否 |
abstract final class | 否 | 否 | 否 | 否 | 否 |
mixin class | 是 | 是 | 是 | 是 | 否 |
base mixin class | 是 | 是 | 否 | 是 | 否 |
abstract mixin class | 否 | 是 | 是 | 是 | 否 |
abstract base mixin class | 否 | 是 | 否 | 是 | 否 |
mixin | 否 | 否 | 是 | 是 | 否 |
base mixin | 否 | 否 | 否 | 是 | 否 |
無效的組合
#某些修飾詞的組合是不允許的
組合 | 原因 |
---|---|
base 、interface 和 final | 全部都控制相同的兩個功能 (extend 和 implement ),因此是互斥的。 |
sealed 和 abstract | 兩者都不能被建構,因此一起使用是多餘的。 |
sealed 與 base 、interface 或 final | sealed 類型已經不能從另一個函式庫 mix in、擴充或實作,因此與列出的修飾詞組合是多餘的。 |
mixin 和 abstract | 兩者都不能被建構,因此一起使用是多餘的。 |
mixin 和 interface 、final 或 sealed | mixin 或 mixin class 宣告旨在被 mix in,而列出的修飾詞會阻止這種情況。 |
enum 和任何修飾詞 | enum 宣告不能被擴充、實作、mix in,並且始終可以被實例化,因此沒有修飾詞適用於 enum 宣告。 |
extension type 和任何修飾詞 | extension type 宣告不能被擴充或 mix in,並且只能由其他 extension type 宣告實作。 |
除非另有說明,否則本網站上的文件反映 Dart 3.7.1 版本。頁面上次更新於 2024-08-04。 檢視原始碼 或 回報問題。