クラス名段落は、この見出し部がクラス定義を導入していることを示し、クラスを示す名前を指定し、クラスにクラス属性を割り当てる。
一般形式
指令
- 予約語リストのフラグ設定および修正を行うコンパイラ指令に加えて、以下の指令が、本セクションに記載の構文または意味内容に影響を与える可能性がある。
- ACTUAL-PARAMS - パラメーター化されたクラスまたはインターフェイスからクラスを作成する際に使用するパラメーターを指定する。
- ILSOURCE - 現在の .NET アセンブリの一部を形成する別のプログラムを含むファイルを指定する。これには、部分クラスの別のコンポーネントを含められる。
構文規則
- literal-1 は英数字の定数とし、表意定数は指定できない。
- type-specifier-1 には、クラス定義で定義したクラスの名前は指定できない。
- type-specifier-1 は class-name-1 を直接的にも間接的にも継承できない。
- type-specifier-1 には、FINAL 句で定義したクラスの名前は指定できない。
- .NET 用 のプログラムを翻訳する際には、type-specifier-1 を繰り返せない。つまり、継承の複製は許可されない。
- type-specifier-2 はインターフェイスを参照できない。
- 指定したクラス名は、INHERITS 句では複数回使用できない。
- 同じ名前の複数の異なるメソッドが継承されている場合、これらはいずれも FINAL 句を使用して指定することはできない。同じメソッドが 1 つのスーパークラスから複数の中間スーパークラスを介して継承される場合は、FINAL 句を使用して指定できる。
- あるメソッド名が複数の継承クラスから継承されている場合、これらのメソッドのプロトタイプが、このクラスのいずれかのメソッドと同じインターフェイスを持つメソッドを定義するようなものであれば、このクラスはすべての継承クラスに準拠しなくなるため、同じメソッド名を持つメソッドをこのクラスで宣言する必要がある。このメソッドは、「メソッド名段落」トピックの構文規則 9 に準拠する必要がある。
注: クラス A が 2 つのクラス B および C からメソッド M を継承し、クラス B および C で M のメソッド インターフェイスが異なる場合 (たとえば、B の M がクラス X のオブジェクトを返すのに対し、C の M が無関係なクラス Y のオブジェクトを返すなど)、この継承は無効になる (クラス A でメソッド インターフェイスの適合性の問題を解決する、M の有効なメソッドのオーバーライドが定義されている場合は除く)。必ずしも可能であるとは限らないが (その場合、継承は有効にならない)、それが可能であるケースもある。たとえば、クラス X および Y を継承するクラス Z を定義できる場合、M のメソッド オーバーライドをクラス A で指定し、クラス Z のオブジェクトを返すことができる。
- parameter-name-1 は、このクラス定義のリポジトリ段落内のクラス指定子またはインターフェイス指定子に指定した名前とする。

属性句については、「ATTRIBUTE、CUSTOM-ATTRIBUTE 句」のトピックに記載されている。