Pregunta

Estoy creando clases S4 en R.

Leí en https://github.com/hadley/devtools/wiki/S4

Tenga en cuenta que S4 admite herencia múltiple, pero esto debe usarse con extrema precaución ya que hace que la búsqueda de métodos sea extremadamente complicada.

¿Qué es la búsqueda de métodos y por qué es más compleja con herencia múltiple?

¿Fue útil?

Solución

Cuando escribe f(x), con x perteneciente a varias clases (digamos, A, B y C), la computadora tiene que decidir qué método f llamar (el de la clase A, B o C): esto se llama "búsqueda de método ".

La herencia múltiple a menudo plantea problemas cuando el código evoluciona.

Imagine que ha escrito dos clases base A y B, y la clase C hereda de ambas.Todo funciona bien. Unos meses después, un desarrollador, que usa la clase A, y desconoce por completo las clases B y C (no las necesita), agrega un nuevo método a la clase A. Sin saberlo, ya existe un método con el mismonombre en la clase B. ¿Qué sucede con los objetos de la clase C?¿Se utilizará el método de A o B?En algunos idiomas, el código puede fallar, en otros puede tener un comportamiento indefinido y un error muy difícil de detectar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top