メインコンテンツにスキップ

クラス修飾子リファレンス

このページには、クラス修飾子のリファレンス情報が含まれています。

有効な組み合わせ

#

クラス修飾子の有効な組み合わせとその結果としての機能は次のとおりです。

宣言コンストラクト?拡張?実装?ミックスイン?網羅的?
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いいえいいえいいえはいいいえ

無効な組み合わせ

#

特定の修飾子の組み合わせは許可されていません。

組み合わせ理由
baseinterfacefinalすべて同じ2つの機能(extendimplement)を制御するため、相互に排他的です。
sealedabstractどちらもコンストラクトできないため、一緒に使用すると冗長になります。
sealedbaseinterface、またはfinalsealed型は、他のライブラリからのミックスイン、拡張、または実装がすでにできないため、指定された修飾子と組み合わせると冗長になります。
mixinabstractどちらもコンストラクトできないため、一緒に使用すると冗長になります。
mixininterfacefinal、またはsealedmixinまたはmixin class宣言はミックスインすることを意図していますが、指定された修飾子はこれを防ぎます。
enumと任意の修飾子enum宣言は、拡張、実装、ミックスインができず、常にインスタンス化できるため、enum宣言にはどの修飾子も適用されません。
extension typeと任意の修飾子extension type宣言は、拡張またはミックスインできず、他のextension type宣言によってのみ実装できます。