Warum ist "abstraktes Überschreiben" erforderlich und nicht "Überschreiben" allein in der Subtraktion?

Ich lese dasSektion der Programmierung in Scala woabstract override wird vorgestellt, aber ich bin immer noch verwirrt darüber, was genau durch das Zusammenfügen dieser Modifikatoren angezeigt wird. Das Code-Snippet, in dem diese Modifikatoren verwendet werden, wird unten eingefügt:

trait Doubling extends IntQueue {
    abstract override def put(x: Int) { super.put(2 * x) }
}

Insbesondere bin ich verwirrt über den Zweck vonabstract in diesem Fall und warum wir die erwarteten Ergebnisse nicht einfach mit dem erreichen könnenoverride Stichwort. Wenn wir keinen Anruf zu enthaltensuperWürden wir das Schlüsselwort brauchen?abstract? Warum oder warum nicht? Ich suche nach einer detaillierten Erklärung für diese Keyword-Kombination, da sie sich auf stapelbare Merkmale bezieht.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage