目次

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

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

有効な組み合わせ

#

クラス修飾子の有効な組み合わせと、その結果として得られる機能は以下のとおりです。

宣言構築?拡張?実装?ミックスイン?網羅的?
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 宣言によってのみ実装できます。