Przeczytałem section Programowania w Scali, gdzie wprowadzono abstract override
, ale nadal jestem zdezorientowany tym, co dokładnie oznacza łączenie tych modyfikatorów. Fragment kodu, w którym te środki modyfikujące służy zostanie wklejony poniżej:Dlaczego "abstrakcyjne zastąpienie" nie wymaga "przesłonięcia" samego w subkategorii?
trait Doubling extends IntQueue {
abstract override def put(x: Int) { super.put(2 * x) }
}
W szczególności, jestem zdezorientowany celów abstract
w tym przypadku i dlatego nie możemy osiągnąć oczekiwane rezultaty po prostu ze słowem kluczowym override
. Gdybyśmy nie zawarli połączenia pod numerem super
, potrzebowalibyśmy słowa kluczowego abstract
? Dlaczego lub dlaczego nie? Poszukuję szczegółowych wyjaśnień tego słowa kluczowego, ponieważ dotyczy to cech, które można układać w stosy.
_Thank you_. Z jakiegoś powodu ciągle widzę przykłady sztaplowania, które można zestawiać z 'abstrakcyjnym przesłonięciem ', ale wydaje mi się, że te dwie koncepcje są faktycznie oddzielne (chociaż oba opierają się na dynamicznie związanym" super "). – Max