Ich lese die section von Programmierung in Scala, wo abstract override
eingeführt wird, aber ich bin immer noch verwirrt, was genau durch die Verbindung dieser Modifikatoren bezeichnet wird. Der Code-Snippet, in denen diese Modifikatoren verwendeten unten eingefügt werden:Warum ist "abstrakte Überschreibung" erforderlich, nicht "überschreiben" allein in subtrahieren?
trait Doubling extends IntQueue {
abstract override def put(x: Int) { super.put(2 * x) }
}
Insbesondere ist ich von dem Zweck der abstract
in diesem Fall verwirrte, und warum können wir die erwarteten Ergebnisse einfach mit dem override
Schlüsselwort nicht erreichen. Wenn wir keinen Anruf zu super
einschließen würden, würden wir das Schlüsselwort abstract
benötigen? Warum oder warum nicht? Ich bin auf der Suche nach einer detaillierten Erklärung dieser Keyword-Combo, da es sich um stapelbare Eigenschaften handelt.
_Thank you_. Aus irgendeinem Grund sehe ich weiterhin stapelbare Merkmalsbeispiele mit 'abstrakte Überschreibung', aber es scheint mir, dass die beiden Konzepte tatsächlich getrennt sind (obwohl beide auf dynamisch gebundene 'Super' angewiesen sind). – Max