Exemplo de Mecanismo de Herança ECMAScript

Esta seção usa um exemplo clássico para explicar o mecanismo de herança do ECMAScript.

Exemplo de Mecanismo de Herança

A maneira mais simples de explicar o mecanismo de herança é através de um exemplo clássico - formas geométricas. Na verdade, há apenas duas formas geométricas, a elipse (que é um círculo) e o polígono (que tem um número determinado de lados). O círculo é uma elipse, com um único foco. O triângulo, o retângulo e o pentágono são tipos de polígono, com um número diferente de lados. O quadrado é um tipo de retângulo, com todos os lados de comprimento igual. Isso forma uma relação de herança perfeita.

Neste exemplo, a forma (Shape) é a classe base (base class) para a elipse (Ellipse) e o polígono (Polygon) (todas as classes herdam dela). A elipse tem um atributo focoindicando o número de focos da elipse. A elipse (Circle) herda a elipse, portanto, o círculo é uma subclasse (subclass) da elipse, e a elipse é a superclasse (superclass). Da mesma forma, o triângulo (Triangle), o retângulo (Rectangle) e o pentágono (Pentagon) são subclasses de polígono, e o polígono é a superclasse deles. Finalmente, o quadrado (Square) herda o retângulo.

A melhor maneira de explicar essa relação de herança é através de gráficos, isso é o lugar do UML (Linguagem de Modelagem Unificada). Um dos principais usos do UML é representar visualmente relações complexas como a herança. Abaixo está um diagrama UML que explica a relação entre Shape e suas subclasses:

Exemplo de Diagrama UML de Mecanismo de Herança

Em UML, cada caixa representa uma classe, descrita pelo nome da classe. Linhas na parte superior dos triângulos, retângulos e pentágonos se encontram e apontam para a forma, indicando que essas classes são herdadas dessa forma. Da mesma forma, a seta apontando do quadrado para o retângulo indica a relação de herança entre elas.