Ich weiß, dass ein Merkmal eine Klasse erweitern kann, die einen leeren Parameterkonstruktor hat:
%Vor%aber ist es möglich, eine Klasse zu erweitern, deren Konstruktor einige Parameter hat?
%Vor%Ist das möglich? Es scheint, dass es nicht möglich ist. aber warum?
Danke
Ja, es ist möglich, Sie können einfach keine Konstruktorargumente angeben:
%Vor%Aber um es zu instanziieren, müssen Sie auch den Konstruktor aufrufen:
%Vor% Das Arg ein val
scheint zu funktionieren.
Dies funktioniert auch, wenn Sie die Klasse zu einem case class
machen, das die Argumente automatisch in vals umwandelt.
BEARBEITEN
Wie @Aleksey darauf hingewiesen hat, kompiliert dies, aber es ist eine Eigenschaft, die nicht instanziiert werden kann. Nein, es scheint immer noch nicht möglich zu sein. Sie müssen Bar eine Klasse machen.
%Vor%Tags und Links scala inheritance traits extends