# Glossary

Abstract base class

A base class that is not directly usable by itself, but which defines the common properties of several subclasses. Example: the class MMTK.ChemicalObjects.ChemicalObject is an abstract base class which defines the common properties of its subclasses MMTK.Atom, MMTK.ChemicalObjects.Group, MMTK.Molecule, MMTK.Complex, and MMTK.AtomCluster. A mix-in class is a special kind of abstract base class.

Base class

A class from which another class inherits. In most cases, the inheriting class is a specialization of the base class. For example, the class MMTK.Molecule is a base class of MMTK.Proteins.PeptideChain, because peptide chains are special molecules. Another common application is the abstract base class.

Mix-in class

A class that is used as a base class in other classes with the sole intention of providing methods that are common to these classes. Mix-in classes cannot be used to create instances. They are a special kind of abstract base class. Example: class MMTK.Collection.GroupOfAtoms.

Subclass

A class that has another class as its base class. The subclass is usually a specialization of the base class, and can use all of the methods defined in the base class. Example: class MMTK.Proteins.Residue is a subclass of MMTK.ChemicalObjects.Group.