Coletânea Python do ZERO às Redes Neurais Artificiais

Fernando Feltrin · Capítulo 128 de 287

Páginas do PDF

Coletânea Python do ZERO às Redes Neurais Artificiais

Cadeia de heranças

 

Como visto no tópico anterior, uma classe pode herdar outra sem

problema nenhum, desde que a lógica estrutural e sintática esteja correta na hora de definir as mesmas.

Extrapolando um pouco, vale salientar que essa herança pode ocorrer em diversos níveis, na verdade, não há um limite para isto, porém é preciso tomar bastante cuidado para não herdar características desnecessárias que possam tornar o código ineficiente. Ex:

 

Repare que nesse exemplo inicialmente é criada uma classe Carro, dentro de si ela possui um método construtor onde é repassado como atributo de classe um nome e um ano.

Em seguida é criada uma classe de nome Gasolina que herda toda estrutura de Carro e dentro de si define que o veículo desta categoria será do tipo gasolina.

Por fim é criada uma última classe se referindo a um carro marca Jeep, que herda toda estrutura de Gasolina e de Carro pela hierarquia entre classe e subclasses. Seria o mesmo que:

Código usual, porém, ineficiente. Assim como estático, de modo que quando houvesse a criação de outros veículos não seria possível reaproveitar nada de dentro dessa Classe a não ser por instâncias de fora da mesma, o que gera muitos caminhos de leitura para o interpretador, tornando a performance do código ruim.

Lembrando que a vantagem pontual que temos ao realizar heranças entre classes é a reutilização de seus componentes internos no lugar de blocos e mais blocos de código repetidos.

Código otimizado via herança e cadeia de hierarquia simples.

Executando nossa função print( ) nesse caso o retorno será: True