[1] In object-oriented programming, a class is a template that defines the state and behavior common to objects of a certain kind.
[1] The concept of class hierarchy in computer science is very similar to taxonomy, the classifications of species.
The relationships are specified in the science of object-oriented design and object interface standards defined by popular use, language designers (Java, C++, Smalltalk, Visual Prolog) and standards committees for software design like the Object Management Group.
The instance variables and methods are inherited down through the levels and can be redefined according to the requirement in a subclass.
In general, the further down in the hierarchy a class appears, the more specialized its behavior.