Jump to content

Singly rooted hierarchy

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The singly rooted hierarchy, in object-oriented programming, is a characteristic of most (but not all) OOP-based programming languages. In most such languages, in fact, all classes inherit directly or indirectly from a single root, usually with a name similar to Object; all classes then form a common inheritance hierarchy.

This idea was introduced first by Smalltalk, and was since used in most other object-oriented languages (notably Java and C#). This feature is especially useful for container libraries - they only need to allow putting an Object in a container to allow objects of any class to be put in the container.

A notable exception is C++, where (mainly for compatibility with C and efficiency) there is no single object hierarchy. Containers in C++ have been implemented with multiple inheritance,[1] and with help of template-based generic programming by Bjarne Stroustrup.[2][3] Other object-oriented languages without a singly rooted hierarchy include Objective-C and PHP.

See also

References

  1. ^ Bruce Eckel, Thinking in C++ vol. 2, Ch. 9 "Multiple inheritance": section "Perspective"
  2. ^ MFC Programmer's SourceBook : Thinking in C Archived 2007-11-13 at the Wayback Machine
  3. ^ Bruce Eckel, Thinking in C++ vol. 1, Ch. 16 "Introduction to Templates": section "The template solution"