Heim > Java > javaLernprogramm > Hauptteil

Wissen Sie, was abstrakte Java-Klassen und abstrakte Methoden sind?

青灯夜游
Freigeben: 2019-11-18 15:17:48
Original
2814 Leute haben es durchsucht

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("喝水");
    }
}
Nach dem Login kopieren

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.

Wissen Sie, was abstrakte Java-Klassen und abstrakte Methoden sind?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

befindet

Das 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage