[1] A class can be defined either by extension (specifying members), or by intension (specifying conditions), using what is called in some ontology languages like OWL.
According to the type–token distinction, the ontology is divided into individuals, who are real worlds objects, or events, and types, or classes, who are sets of real world objects.
According to an extensional definition, they are abstract groups, sets, or collections of objects.
According to an intensional definition, they are abstract objects that are defined by values of aspects that are constraints for being member of the class.
While extensional classes are more well-behaved and well understood mathematically, as well as less problematic philosophically, they do not permit the fine grained distinctions that ontologies often need to make.
Sometimes restrictions along these lines are made in order to avoid certain well-known paradoxes.
In some ontologies, a class is only allowed to have one parent (single inheritance), but in most ontologies, classes are allowed to have any number of parents (multiple inheritance), and in the latter case all necessary properties of each parent are inherited by the subsumed child class.
A partition is a set of related classes and associated rules that allow objects to be classified by the appropriate subclass.
The rules correspond with the aspect values that distinguish the subclasses from the superclasses.