Esempio di meccanismo di ereditarietà ECMAScript

Questa sezione utilizza un esempio classico per spiegare il meccanismo di ereditarietà di ECMAScript.

Esempio di meccanismo di ereditarietà

La modo più semplice di spiegare il meccanismo di ereditarietà è utilizzare un esempio classico - le figure geometriche. In realtà, ci sono solo due tipi di figure geometriche, ossia l'ellisse (è una circonferenza) e il poligono (ha un numero definito di lati). La circonferenza è una sottoclasse dell'ellisse, ha un solo focolaio. Il triangolo, il rettangolo e il pentagono sono sottoclassi dei poligoni, hanno un numero diverso di lati. Il quadrato è una sottoclasse del rettangolo, tutti i lati sono di lunghezza uguale. Questo costituisce una relazione di ereditarietà perfetta.

In questo esempio, la forma (Shape) è la classe base (base class) dell'ellisse (Ellipse) e del poligono (Polygon) (tutte le classi derivano da essa). L'ellisse ha un attributo focolaiindicando il numero di focolai dell'ellisse. La circonferenza (Circle) eredita l'ellisse, quindi la circonferenza è una sottoclasse dell'ellisse (subclass), l'ellisse è la superclasse. Allo stesso modo, il triangolo (Triangle), il rettangolo (Rectangle) e il pentagono (Pentagon) sono sottoclassi dei poligoni, i poligoni sono le loro superclassi. Infine, il quadrato (Square) eredita il rettangolo.

Meglio spiegare questa relazione di ereditarietà con un diagramma, è il caso dell'UML (Linguaggio di Modellazione Unificato). Uno degli usi principali dell'UML è rappresentare visivamente relazioni complesse come l'ereditarietà. Il seguente diagramma è un diagramma UML che spiega la relazione tra Shape e i suoi sottoclassi:

Esempio di diagramma UML del meccanismo di ereditarietà

In UML, ogni quadrato rappresenta una classe, descritta dal nome della classe. Le linee degli triangoli, dei rettangoli e dei pentagoni si incontrano insieme alla cima, che indica la forma, spiegando che queste classi derivano dalla forma. Allo stesso modo, la freccia che punta dal quadrato al rettangolo spiega la loro relazione di ereditarietà.