21.12.2022 Views

python_para_desenvolvedores_2ed

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

122 Herança múltipla

pistoes = 6

rodas = 4

se_move_em_terra = True

se_move_na_agua = True

velocidade_agua = 4

velocidade_em_terra = 80

A diferença mais significativa em relação à herança simples é a ordem de

resolução de métodos (em inglês, Method Resolution Order- MRO).

Old

style

F

3

New

style

F

5

2 D

E 5

2 D

E 4

1

B

C

4

1

B

C

3

A

0

Ordem de

resolução

A

0

Nas classes old style, a resolução começa pela classe mais a esquerda e desce

até o fim da hierarquia e depois passa para o ramo a direita.

Já nas classes new style, a resolução é feita a partir da esquerda, descendo até

encontrar a classe em comum entre os caminhos dentro hierarquia. Quando é

encontrada uma classe em comum, a procura passa para o caminho à direita.

Ao esgotar os caminhos, o algoritmo prossegue para a classe em comum e

repete o processo.

Na hierarquia de classes do exemplo, a MRO para a classe dos anfíbios será:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!