Class in object-oriented programming

HomePage | Recent changes | View source | Discuss this page | Page history | Log in |

Printable version | Disclaimers | Privacy policy

A class is a kind of template (not to be confused with a C++ template however) that describes the underlying structure of a group of objects. A class specifies the data items each object of the class contains and the operations or methods that can be performed on each object belonging to the class (in object-oriented languages that lack generic functions). An object belonging to a class is also called an instance of the class. It could be said that a class is like the blueprint, and an object is the house.

(Some languages have objects but no classes. In these languages, objects are not restricted to structure provided by classes, and can be changed at will. This less common technique is called object-based programming.)

Classes are often related in some way. The most popular of these relations is inheritance, that is, all objects of one class, called child class or subclass, belong not only to this class, but also to other class, called parent class or superclass. For example all class "Button" (some specific kind of widget) may be subclass of class "Widget" (anything that can be displayed by windowing system), so all buttons are, by definition, interchangable with widgets. This technique is often used to add some abstraction.

Other popular technique is containing, when all objects of some, containing, class contain object of some other, contained, class. For example Window class may contain TitleBar, Menu and Contents classes, so every Window object contains some TitleBar object, some Menu object and some Contents object. Containing is often used instead of multiple inheritance.

Some programming languages (for example C++) allow multiple inheritance - they allow a child class to have more than one parent class. This technique has been criticized by some for its unnecessary complexity and being hard to implement efficiently, though some projects have undoubtedly benefited from its use. Java, for example has no multiple inheritance, its designers feeling that it was more trouble than it was worth.

See also: Object-oriented programming

For other meaning of word class, see Class.