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

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

王林
王林nach vorne
2023-04-22 20:16:061681Durchsuche

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();
 
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen