Ceylon Verständiniss Frage

Whiterose

Lt. Commander
Registriert
Sep. 2008
Beiträge
1.216
Ich beschäfigte mich gerade mit der noch recht frischen Programmiersprache Ceylon.
Die Sprache lehnt sich ja schon seher an Java, hat aber auch grobe Unterschiede.
Habe auch schon die ersten kleine Programme geschreiben.
Auf deren Website habe ich dann im FAQ gelesen das es kein "Final" gibt.

"Since all members of a type are "final" by default, a subtype can't break its supertypes by refining a member unless the supertype explicitly allows this by declaring the member default. So a final modifier to prevent inheritance from a class would serve no purpose."


Mein Englisch ist schon ganz Okay, aber ich verstehe den Zusammenhang nicht ganz.
Was versucht man mir dort Mitzuteilen?
 
Naja statt dass man sagt, dass Klassen und dessen Member/Methoden final sind, sind sie eben immer final und man muss explizit ausdrücken, dass sie es nicht sind und das geht mit dem Keyword "default".

Also du kannst dann nur Elemente einer Oberklasse ändern die mit "default" deklariert wurden, ansonsten geht es nicht.

Also bspw. erbt B von A und A hat die Methode "test". In Java könntest du in B dann "test" mit neuer, eventuell gänzlich anderer, Logik überschreiben und das ginge nur nicht, wenn "test" in A als final deklariert ist.
Das will man aber scheinbar verhindern und lässt deswegen alles standardmäßig final sein, es sei denn man will, dass eine erbende Klasse in unserem Beispiel "test" überschreiben darf.

So verstehe ich das.
 
Zurück
Oben