h3.Definition: Object Class Type
An object class type is used to define the category for an [object class|Definition -- Object Class]. There are three object class type values:
* [structural|Definition -- Structural Object Class] -- A structural object class is used to define the primary type for an entry. Each entry must have exactly one structural class, and it defines the core type of object that the entry represents.
* [auxiliary|Definition -- Auxiliary Object Class] -- An auxiliary object class is used to define a characteristic of an entry. An entry may have zero or more auxiliary classes. The set of auxiliary classes that an entry may have may be controlled by a [DIT content rule|Definition -- DIT Content Rule] that is associated with the entry's structural class.
* [abstract|Definition -- Abstract Object Class] -- An abstract object class is not intended to be used directly in entries but should be subclassed by a structural or auxiliary class.
The inheritance model used for LDAP object classes is very similar to the inheritance model for Java classes. Just like an entry must only exactly one structural object class, a Java class must have exactly one superclass. Similarly, while an entry may have multiple auxiliary classes, a Java class may implement multiple interfaces. Finally, it is not possible to instantiate an abstract Java class, just as it is not possible to create an entry containing only an abstract object class.
An object class type is used to define the category for an [object class|Definition -- Object Class]. There are three object class type values:
* [structural|Definition -- Structural Object Class] -- A structural object class is used to define the primary type for an entry. Each entry must have exactly one structural class, and it defines the core type of object that the entry represents.
* [auxiliary|Definition -- Auxiliary Object Class] -- An auxiliary object class is used to define a characteristic of an entry. An entry may have zero or more auxiliary classes. The set of auxiliary classes that an entry may have may be controlled by a [DIT content rule|Definition -- DIT Content Rule] that is associated with the entry's structural class.
* [abstract|Definition -- Abstract Object Class] -- An abstract object class is not intended to be used directly in entries but should be subclassed by a structural or auxiliary class.
The inheritance model used for LDAP object classes is very similar to the inheritance model for Java classes. Just like an entry must only exactly one structural object class, a Java class must have exactly one superclass. Similarly, while an entry may have multiple auxiliary classes, a Java class may implement multiple interfaces. Finally, it is not possible to instantiate an abstract Java class, just as it is not possible to create an entry containing only an abstract object class.