Funktion
Der CLASS-ID-Paragraf zeigt an, dass diese Identification Division eine Klassen-Definition einleitet und spezifiziert den Namen der Klasse und ihre Attribute.
Format
CLASS-ID. klassenname-1 [IS FINAL]
[INHERITS FROM {klassenname-2}...]
[USING {parametername-1}...].
Syntax-Regeln
klassenname-1 darf nicht BASE sein.
klassenname-2 ist der Name einer Klasse, der im REPOSITORY-Paragrafen definiert sein muss.
klassenname-2 muss ungleich klassenname-1 sein.
klassenname-2 darf weder direkt noch indirekt von einer Klasse erben, die eine Expansion von klassenname-1 ist.
klassenname-2 darf nicht mit der FINAL-Klausel definiert sein.
Falls zwei oder mehr unterschiedliche Methoden mit demselben Namen geerbt werden, darf keine von ihnen mit der FINAL-Klausel spezifiziert sein. Falls dieselbe Methode von einer übergeordneten Klasse durch zwei oder mehr übergeordnete Zwischenklassen geerbt wird, darf sie mit der FINAL-Klausel spezifiziert sein.
Der gleiche klassenname-2 darf nicht mehrfach in einer INHERITS-Klausel vorkommen.
Gibt es eine Methode mit gleichem Namen in mehr als einer der geerbten Klassen und haben diese Methoden verschiedene Schnittstellen, dann muss in dieser Klasse eine Methode mit diesem Namen definiert werden, deren Schnittstelle Syntaxregel 5 von Method-Id erfüllen muss.
parametername-1 ist der Name einer Klasse oder eines Interface, der im
REPOSITORY-Paragrafen definiert sein muss.Der gleiche parametername-1 darf nicht mehrfach in einer USING-Klausel vorkommen.
parametername-1 muss ungleich klassenname-1 sein.
Allgemeine Regeln
klassenname-1 benennt die Klasse, die durch diese Klassendefinition vereinbart ist.
Die INHERITS-Klausel spezifiziert die Namen der Klassen, die von klassenname-1 geerbt werden.
Falls die FINAL-Klausel spezifiziert wird, kann die Klasse nicht die übergeordnete Klasse für eine andere Klasse sein.
Falls dieselbe Klasse mehr als einmal geerbt wird, dann wird nur eine Kopie der Daten für diese Klasse zu klassenname-1 hinzugefügt.
Die USING-Klausel spezifiziert diese Klasse als parametrisierte Klasse und führt die Namen der Parameter auf.