Damit erweitern Sie implizit A
. Was Sie getan haben, ist syntaktischer Zucker, äquivalent zu diesem:
Mit diesen Klammern können Sie eine Klasse im laufenden Betrieb erweitern und eine neue anonyme Klasse erstellen, die den Wert a
instanziiert und daher nicht mehr abstrakt ist.
Wenn Sie Java kennen, ist das ähnlich wie:
%Vor% Aufgrund von Scalas einheitlichem Zugriff sieht es so aus, als ob Sie keine abstrakten Funktionen implementieren, Aber indem Sie a
einen Wert geben, "konkretisieren" Sie die Klasse tatsächlich.
Mit anderen Worten, Sie erstellen eine Instanz einer konkreten Unterklasse von A
, ohne der Unterklasse einen Namen zu geben (daher der Begriff "anonyme" Klasse).
Mit Scala können Sie nicht nur anonyme Funktionen, sondern auch anonyme Klassen erstellen.
Was Sie getan haben, ist ähnlich wie
%Vor% aber ohne Anon
name
Sie instanziieren eine anonyme Klasse, die von A erbt und ihr abstraktes Element überlädt. Als Referenz finden Sie den Teil über anonyme Klasseninstanziationen in Eine Tour of Scala: Abstrakte Typen
Tags und Links scala abstract-class