Heim > Java > JavaBase > Hauptteil

Der Unterschied zwischen Java-Schnittstelle und abstrakter Klasse

(*-*)浩
Freigeben: 2019-11-11 11:18:02
Original
3368 Leute haben es durchsucht

Der Unterschied zwischen Java-Schnittstelle und abstrakter Klasse

Schnittstelle

Konzept

Eine Schnittstelle ist eine Sammlung, die bestimmte Funktionen kapselt . Um einen Verhaltenstyp zu abstrahieren, verwenden Sie Schnittstellenmodifikationen. (Empfohlenes Lernen: Java-Kurs)

public interface InfClass {
    public void say();
}
Nach dem Login kopieren

Abstrakter Kurs

Konzept

In einfachen Worten Eine Klasse, die eine abstrakte Methode enthält, ist eine abstrakte Klasse. Eine abstrakte Methode hat nur einen Methodenkörper und keine Implementierung.

abstract class AbsClass {
    abstract void say();
}
Nach dem Login kopieren

Java bietet und unterstützt die Erstellung abstrakter Klassen und Schnittstellen. Ihre Implementierungen haben etwas gemeinsam, der Unterschied ist:

Alle Methoden in der Schnittstelle sind implizit abstrakt. Eine abstrakte Klasse kann sowohl abstrakte als auch nicht abstrakte Methoden enthalten.

Eine Klasse kann viele Schnittstellen implementieren, aber nur eine abstrakte Klasse erben

Eine Klasse muss nicht alle von deklarierten Methoden implementieren abstrakte Klassen und SchnittstellenIn diesem Fall muss die Klasse natürlich auch als abstrakt deklariert werden.

Abstrakte Klassen können Schnittstellen implementieren, ohne Implementierungen von Schnittstellenmethoden bereitzustellen.

In der Java-Schnittstelle deklarierte Variablen sind standardmäßig endgültig. Abstrakte Klassen können nicht-finale Variablen enthalten.

Memberfunktionen in Java-Schnittstellen sind standardmäßig öffentlich. Mitgliedsfunktionen einer abstrakten Klasse können privat, geschützt oder öffentlich sein.

Schnittstellen sind absolut abstrakt und können nicht instanziiert werden, und abstrakte Klassen können nicht instanziiert werden.

Wenn eine Klasse eine Schnittstelle implementiert, muss sie alle Methoden der Schnittstelle implementieren, und eine abstrakte Klasse muss nicht unbedingt

sein

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Java-Schnittstelle und abstrakter Klasse. 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