Heim >Java >javaLernprogramm >Wissen Sie, was abstrakte Java-Klassen und abstrakte Methoden sind?
Was sind abstrakte Java-Klassen und abstrakte Methoden?
Wenn bei der Klassenvererbung neue Unterklassen definiert werden, werden die Unterklassen immer spezifischer und die übergeordnete Klasse wird allgemeiner und vielseitiger. Das Design der Klasse sollte dies sicherstellen und untergeordnete Klassen können Merkmale gemeinsam nutzen. Manchmal ist die übergeordnete Klasse so konzipiert, dass sie keine spezifischen Instanzen hat. Eine solche Klasse wird im Allgemeinen als abstrakte Klasse bezeichnet und erfordert keine Erstellung von Instanzen Von dieser Klasse können wir davon ausgehen, dass diese Klasse als abstrakte Klasse festgelegt ist und ihre Unterklassen die abstrakten Methoden dieser Klasse implementieren
abstrakte Klasse (abstrakte Klasse)
Wenn das Schlüsselwort abstract zum Ändern einer Klasse verwendet wird, wird die Klasse als abstrakte Klasse bezeichnet. Eine abstrakte Klasse ist eine Sammlung öffentlicher Attribute aller ihrer Unterklassen und eine Klasse, die eine oder mehrere abstrakte Methoden enthält.
Abstrakte Klassen können als weitere Abstraktionen von Klassen angesehen werden. Im objektorientierten Bereich werden abstrakte Klassen hauptsächlich zum Verbergen von Typen verwendet.
Eigenschaften abstrakter Klassen:
(1) Kann nicht instanziiert werden
(2) Abstrakte Klassen haben Konstruktoren (alle Klassen haben Konstruktoren)
(3 ) Die Klasse, in der sich die abstrakte Methode befindet, muss eine abstrakte Klasse sein (da abstrakte Methoden keinen Methodenkörper haben. Wenn die Klasse keine abstrakte Klasse ist, kann die Klasse das Objekt instanziieren, die abstrakte Methode aufrufen und dann keine Methode haben Es ist ein Widerspruch, wenn die Funktion konkret implementiert wird)
(4) Eine abstrakte Klasse kann keine abstrakte Methode haben
//抽象类 abstract class Person { String name; public Person(){}//抽象类的构造方法 public abstract void dink();//抽象方法,无{}方法体 public void eat(){ //非抽象方法 }; } class Student extends Person{ @Override public void eat() { System.out.println("吃饭"); } @Override public void dink() { System.out.println("喝水"); } }
Abstrakte Methode (abstrakte Methode)
Die durch Abstract geänderte Methode ist eine abstrakte Methode, und alle abstrakten Methoden müssen in der abstrakten Klasse vorhanden sein.
In abstrakten Klassen definierte Methoden werden als abstrakte Methoden bezeichnet. Diese Methoden enthalten nur die Deklaration des Methodenheaders und verwenden ein Semikolon, um die Definition des Methodenkörpers zu ersetzen, dh nur die Schnittstellenform des Mitglieds Die Methode wird ohne die konkrete Operation definiert.
Eigenschaften abstrakter Methoden:
(1) Format, kein Methodenkörper, einschließlich {}, zum Beispiel öffentliches abstraktes void dink(); (2) Abstrakte Methode Nur die Funktion der Methode bleibt erhalten und die spezifische Ausführung wird an die Unterklasse übergeben, die die abstrakte Klasse erbt, und die Unterklasse schreibt die abstrakte Methode neu
(3) Wenn die Unterklasse die abstrakte Klasse erbt und neu schreibt Alle Methoden der übergeordneten Klasse sind abstrakte Methoden, dann ist diese Unterklasse keine abstrakte Klasse und kann instanziiert werden
(4) Wenn die Unterklasse die abstrakte Klasse erbt und nicht alle abstrakten Methoden in der übergeordneten Klasse überschreibt Dies bedeutet, dass es eine abstrakte Methode gibt und diese Unterklasse als abstrakt deklariert werden muss.
Im obigen Beispiel erbt die Student-Unterklasse die abstrakte übergeordnete Klasse und überschreibt die abstrakte Methode eat(). Wenn sie die abstrakte Methode drink() nicht überschreibt, wird ein Es wird ein Fehler gemeldet. Die Lösung besteht darin, die Methode drink() neu zu schreiben oder Student in eine abstrakte Klasse umzuwandeln Wird in vielen Anwendungen verwendet. Es ist besser anwendbar, wenn es sich im Zustand
befindetDas obige ist der detaillierte Inhalt vonWissen Sie, was abstrakte Java-Klassen und abstrakte Methoden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!