Heim > Java > javaLernprogramm > Was ist der Unterschied zwischen abstrakter Klasse und Schnittstelle in Java?

Was ist der Unterschied zwischen abstrakter Klasse und Schnittstelle in Java?

王林
Freigeben: 2023-04-22 20:16:06
nach vorne
1786 Leute haben es durchsucht

Unterschiede

1. Abstrakte Klassen und Unterklassen haben eine is-Beziehung, und Schnittstellen haben eine ähnliche Beziehung. Abstrakte Klassen weisen einen hohen Grad an Kopplung auf und weisen eine bessere Wiederverwendbarkeit und Wartbarkeit auf, während Schnittstellen die entgegengesetzte Beziehung haben.

2. Abstraktion kann nur einzeln vererbt werden, und Schnittstellen und Unterklassen können mehrere Schnittstellen implementieren.

Abstrakte können nicht konstante Mitgliedsvariablen haben, Schnittstellen können nur konstante Mitgliedsvariablen haben, Schnittstellen haben nach 1.8 Standardmethoden und Abstraktionen haben Mitgliedsmethoden.

Instanzen

Beispiele für Türen und Alarme: Türen haben zwei Aktionen: open() und close(). Zu diesem Zeitpunkt können wir dieses abstrakte Konzept durch abstrakte Klassen und Schnittstellen definieren:

abstract class Door {
 
    public abstract void open();
 
    public abstract void close();
 
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen abstrakter Klasse und Schnittstelle in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Aktuelle Ausgaben
Kann Java als Backend des Webs verwendet werden?
Aus 1970-01-01 08:00:00
0
0
0
Installieren Sie JAVA
Aus 1970-01-01 08:00:00
0
0
0
Java kann nicht installiert werden
Aus 1970-01-01 08:00:00
0
0
0
Ist das in der Java-Sprache?
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage