Pergunta

Estou criando classes S4 na R.

Eu li em https://github.com/hadley/devtools/wiki/S4

Observe que S4 suporta herança múltipla, mas isso deve ser usado com extrema cautela, pois torna a pesquisa de método extremamente complicada.

O que é pesquisa de método e por que é mais complexo com herança múltipla?

Foi útil?

Solução

Quando você digita f(x), com x pertencente a várias classes (digamos, A, B e C), o computador deve decidir qual método f chamar (aquele da classe A, B ou C): isso é chamado de "lookup de método ".

A herança múltipla geralmente apresenta problemas quando o código evolui.

Imagine que você escreveu duas classes básicas A e B, e a classe C herda de ambas.Tudo funciona bem. Poucos meses depois, um desenvolvedor, que usa a classe A, e não conhece as classes B e C (não precisa delas), adiciona um novo método à classe A. Sem que ele saiba, já existe um método com a mesmanome na classe B. O que acontece com os objetos da classe C?O método de A ou B será usado?Em algumas linguagens, o código pode falhar, em outras você pode ter um comportamento indefinido e um bug muito difícil de detectar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top