Classes (also called "terms" in this guide) model types of objects or processes in the real world. Note that classes model types, not instances. For example, the Gene Ontology class "mitochondria" models the class of all mitochondria, not any particular mitochondria in some particular cell.
Classes are defined and made unique by their definition and ID. Term names do not have to be unique (though one can check for redundancies using the verification manager in OBO-Edit). It is also recommended that one implement some basic naming guidelines to avoid ambiguity and redundancy--for example, making terms singular and lower case.
Classes may have relationships to each other. These relationships may be of one of the pre-defined relationship types in OBO (such as is_a, the relationship type that indicates that a class or relation is a sub-type of another class or relation) or may be user-defined.
If a class A has an is_a relationship to another class B, A is a "subclass" of B. This means that all instances of type A are also instances of type B, and any object of type A implicitly inherits all the characteristics of an object of type B.
For example, a sneaker is_a shoe. That means that any particular sneaker in the real world (e.g., any instance of the class sneaker) is also a shoe, by definition. All sneakers have the characteristics of a general shoe, as well as some special characterists that only sneakers have. These special characteristics are what differentiate sneakers from shoes to make the category "sneaker" meaningful.
OBO classes are analogous to OWL or DAML+OIL classes.