Wir nennen die mit dem Schlüsselwort abstract geänderte Klasse eine abstrakte Klasse , also eine abstrakte Klasse , zum Beispiel:
abstractclassA{…}
Wir nennen Methoden, die mit dem Schlüsselwort abstract geändert wurden, abstrakte Methoden , also abstrakte Methoden , zum Beispiel:
abstrakt int max(int x,int y);
Beachten:
1) Für abstrakte Methoden ist nur die Deklaration zulässig und die Implementierung ist nicht zulässig, d Die abstrakte Methode darf nicht geändert werden, dh die abstrakte Methode muss eine Instanzmethode sein.
2) Abstrakte Klassen können abstrakte oder nicht abstrakte Methoden haben, nicht abstrakte Klassen können jedoch keine abstrakten Methoden haben.
Beispiel: Die Methode max () in Klasse A ist eine abstrakte Methode und die Methode min () ist eine normale Methode (nicht abstrakte Methode).
abstractclassA{abstractintmax(intx,inty);intmin(intx,inty){returnx<y?x:y;}}
Für abstrakte Klassen können Sie den neuen Operator nicht zum Erstellen von Objekten dieser Klasse verwenden. Wenn eine nicht abstrakte Klasse eine Unterklasse einer abstrakten Klasse ist, muss sie die abstrakte Methode der übergeordneten Klasse überschreiben und den Methodenkörper angeben dass es nicht möglich ist. Der Grund, warum es erlaubt ist, final und abstract gleichzeitig zu verwenden, um eine Methode oder Klasse zu ändern.
Wir können die abstrakte Klasse verwenden, um ein Objekt zu deklarieren. Obwohl das Objekt nicht mit dem neuen Operator erstellt werden kann, kann das Objekt ein Upcast-Objekt seiner Unterklasse werden, sodass das Objekt die von der Unterklasse überschriebene Methode aufrufen kann.
Hinweis: Eine abstrakte Klasse verfügt möglicherweise nicht über eine abstrakte Methode. Wenn eine abstrakte Klasse eine Unterklasse der abstrakten Klasse ist, kann sie entweder die abstrakte Methode der übergeordneten Klasse überschreiben oder die abstrakte Methode der übergeordneten Klasse erben.