Object-Orientation FAQ

1.14) What Is Specialization/Generalization/Overriding?

To create a subclass is specialization, to factor out common parts of
derived classes into a common base (or parent) is generalization [Booch 91,
p56].  Overriding is the term used in Smalltalk and C++ for redefining a
(virtual in Simula and C++) method in a derived class, thus providing
specialized behavior.  All routines in Smalltalk are overridable and non-
"frozen" features in Eiffel can be "redefined" in a derived class.  Whenever
a method is invoked on an object of the base class, the derived class method
is executed overriding the base class method, if any.  Overriding in Simula
is a combination of overloading and multiple-polymorphism because parameters do
not have to be declared.  Eiffel and BETA are examples of languages allowing
any member to be redefined and not just methods, as is typical.

This document was translated by ms2html v1.8 on 01.06.95.