Subclasses
In object-oriented programming, a class B can
extend or subclass another
class A. We say that A is the superclass and B is
the subclass. Instances of B inherit all the
instance methods of A. The class B can define its own instance
methods, some of which may override methods of
the same name defined by class A. If a method of B overrides a method
of A, the overriding method in B may sometimes want to invoke the
overridden method in A: this is called method
chaining. Similarly, the subclass constructor B()
may sometimes need to invoke the
superclass constructor A()
. This is
called constructor chaining. Subclasses can
themselves have subclasses, and when working with hierarchies of
classes, it can sometimes be useful to define abstract
classes. An abstract class is one that defines one or more
methods without an implementation. The implementation of these
abstract methods is left to the
concrete subclasses of the abstract
class.
The key to creating subclasses in JavaScript is proper
initialization of the prototype object. If class B extends A, then
B.prototype
must be an heir of
A.prototype
. Then instances of B
will inherit from B.prototype
which
in turn inherits from A.prototype
.
This section demonstrates each of the subclass-related terms defined
above, and also covers an alternative to subclassing known as
composition.
Using the Set class of Example 9-6 as a starting point, this section will demonstrate how to define subclasses, how to chain to constructors and overridden ...
Get JavaScript: The Definitive Guide, 6th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.