Ja.
Eine abstrakte Klasse wird üblicherweise abstrakte Methoden enthalten. Eine abstrakte Methodendefinition besteht aus:
public
),abstract
,
Der Signatur folgen weder geschweifte Klammern noch ein Methodenkörper.
Hier ist die abstrakte Klasse
AbstrakteSuperklasse
mit der abstrakten Methode berechne()
:
abstract class AbstrakteSuperklasse { public abstract int berechne( int x, String s ); }
Wenn eine Klasse eine oder mehrere abstrakte Methoden hat,
muss sie als abstract
deklariert werden.
Eine abstrakte Klasse kann Methoden haben, die nicht abstrakt sind
(die übliche Art von Methoden).
Diese Methoden werden von den Subklassen in der üblichen Weise geerbt.
Eine nicht-abstrakte Subklasse einer abstrakten Superklasse
muss jede der abstrakten Methoden ihrer Superklasse überschreiben.
Diese Regeln sind nicht so schlimm wie sie scheinen.
Nachdem Sie eine Weile mit Vererbung gearbeitet haben, werden Ihnen die Regeln klar sein.
Hier ist eine Subklasse von AbstrakteSuperklasse
:
class Subklasse extends AbstrakteSuperklasse { public int berechne( int x, String s ) { . . . } }
Die Methode berechne()
der Subklasse überschreibt korrekt die abstrakte Methode der Superklasse.