Frage

Ich erstelle S4-Klassen in R.

Ich habe https://github.com/hadley/devtools/wiki/S4

Beachten Sie, dass S4 Mehrfachvererbung unterstützt, dies sollte jedoch verwendet werden mit äußerster Vorsicht, da dies die Methodensuche extrem kompliziert macht.

Was ist Methodensuche und warum ist sie bei Mehrfachvererbung komplexer?

War es hilfreich?

Lösung

Wenn Sie f(x) eingeben, wobei x zu mehreren Klassen gehört (z. B. A, B und C), muss der Computer entscheiden, welche f-Methode (die aus Klasse A, B oder C) aufgerufen werden soll.Methodensuche ".

Mehrfachvererbung wirft häufig Probleme auf, wenn sich der Code weiterentwickelt.

Stellen Sie sich vor, Sie haben zwei Basisklassen A und B geschrieben und Klasse C erbt von beiden.Alles funktioniert gut. Einige Monate später fügt ein Entwickler, der Klasse A verwendet und die Klassen B und C überhaupt nicht kennt (er benötigt sie nicht), Klasse A eine neue Methode hinzu. Unbekannt gibt es bereits eine Methode mit derselbenName in Klasse B. Was passiert mit Objekten der Klasse C?Wird die Methode von A oder B verwendet?In einigen Sprachen kann der Code fehlschlagen, in anderen kann es zu einem undefinierten Verhalten und einem sehr schwer zu fassenden Fehler kommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top