Heim > Java > javaLernprogramm > Hauptteil

Grundlagen von Java-Interviews: FAQs zu Schnittstellen und abstrakten Klassen

WBOY
Freigeben: 2024-03-04 09:07:15
nach vorne
413 Leute haben es durchsucht

Java 面试必备:接口与抽象类的常见问题解答

PHP-Editor Apple hat einen notwendigen Leitfaden für Java-Interviews zusammengestellt: Häufig gestellte Fragen zu Schnittstellen und abstrakten Klassen. In Java-Interviews sind Schnittstellen und abstrakte Klassen wichtige Themen, die häufig gefragt werden. In diesem Artikel erfahren Sie mehr über die Unterschiede, Nutzungsszenarien, Vor- und Nachteile von Schnittstellen und abstrakten Klassen usw., was Ihnen hilft, sich besser auf Vorstellungsgespräche vorzubereiten und Ihre technischen Fähigkeiten unter Beweis zu stellen. Lassen Sie uns auf diese Schlüsselfragen eingehen, um Ihr Java-Interview zu unterstützen!

  • Schnittstelle:
    • Definiert eine Reihe von Methodensignaturen, aber keine Implementierungsdetails.
    • Deklariert den Vertrag der Klasse und zwingt die Klasse, die die Schnittstelle implementiert, zur Implementierung der angegebenen Methode.
  • Abstrakte Klasse:
    • Kann sowohl abstrakte Methoden (ohne Implementierungsdetails) als auch konkrete Methoden (mit Implementierungsdetails) enthalten.
    • Deklariert das Verhalten der Klasse. Unterklassen müssen abstrakte Methoden implementieren und können konkrete Methoden überschreiben.

F2: Was ist der Unterschied zwischen Schnittstelle und abstrakter Klasse?

Funktionen Schnittstelle Abstrakter Kurs
Methode Kann nur deklariert, nicht umgesetzt werden kann deklariert und umgesetzt werden
Erreicht Muss von der Klasse implementiert werden, die es implementiert Kann durch Unterklassen implementiert werden
Mehrfachvererbung Unterstützt Mehrfachvererbung Unterstützt keine Mehrfachvererbung
Instantiierung Kann nicht instanziiert werden Kann Objekte instanziieren (aber keine erstellen)

F3: Wann sollte eine Schnittstelle oder eine abstrakte Klasse verwendet werden?

  • Benutzeroberfläche:
    • Definieren Sie den Funktionsvertrag einer Klasse, ohne Implementierungsdetails anzugeben.
    • Wenn Polymorphismus erreicht werden muss (gleiches Verhalten erforderlich, aber unterschiedliche Implementierungen).
  • Verwenden Sie abstrakte Klassen:
    • Definieren Sie einen gemeinsamen Satz von Verhaltensweisen und Eigenschaften für eine Klasse, sodass sich Nachkommenklassen erweitern lassen.
    • Wenn es notwendig ist, eine Standardimplementierung bereitzustellen und Unterklassen die Spezialisierung zu ermöglichen.

F4: Welche Beziehung besteht zwischen der Mehrfachvererbung von Schnittstellen und der Einfach-Mehrfachvererbung abstrakter Klassen?

  • Mehrfachvererbung von Schnittstellen: Eine Klasse kann mehrere Schnittstellen implementieren und dadurch die in diesen Schnittstellen definierten Methodensignaturen erben.
  • Einzelne Vererbung abstrakter Klassen: Eine Klasse kann nur eine abstrakte Klasse erben, aber Polymorphismus kann durch die Implementierung mehrerer Schnittstellen erreicht werden.

F5: Standard- und statische Methoden in Schnittstellen

Java 8 führt Standard- und statische Schnittstellenmethoden ein:

  • Standardmethode: Eine implementierte Schnittstellenmethode, die von einer Klasse überschrieben werden kann, die die Schnittstelle implementiert.
  • statische Methode: Nicht implementierte Schnittstellenmethode, die aufgerufen werden kann, ohne eine Instanz der Schnittstelle zu erstellen.

Demo-Code:

interface Drawable {
void draw();
default void print() { System.out.println("Drawing..."); }
static void show() { System.out.println("Show drawing..."); }
}
class Circle implements Drawable {
@Override
public void draw() { System.out.println("Drawing a circle..."); }
}
public class Main {
public static void main(String[] args) {
Drawable circle = new Circle();
circle.draw();
Drawable.print();
Drawable.show();
}
}
Nach dem Login kopieren

Ausgabe:

Drawing a circle...
Drawing...
Show drawing...
Nach dem Login kopieren

F6: endgültige und statische Methoden in abstrakten Klassen

Abstrakte Klassen können finale und statische Methoden enthalten:

  • finale Methode: kann nicht von Unterklassen überschrieben werden.
  • statische Methoden: mit der Klasse selbst verknüpft, nicht mit ihren Instanzen.

F7: Zugriffsberechtigungen in Schnittstellen und abstrakten Klassen

Alle Methoden und Konstanten in der Schnittstelle sind standardmäßig öffentlich und abstrakt. Methoden in abstrakten Klassen können unterschiedliche Zugriffsrechte haben, abstrakte Methoden sind jedoch standardmäßig öffentlich und abstrakt.

Q8: Instanziierung und Aufruf von Schnittstellen und abstrakten Klassen

  • Schnittstelle: kann nicht direkt instanziiert werden, kann aber über eine Klasse instanziiert werden, die sie implementiert.
  • Abstrakte Klasse: Kann instanziiert werden, aber keine Objekte erstellen. Auf seine Methoden muss indirekt zugegriffen werden, indem eine Instanz seiner Unterklasse erstellt wird.

Q9: Vergleich von Schnittstellen und abstrakten Klassen

Funktionen Schnittstelle Abstrakter Kurs
Polymorphismus Unterstützung Unterstützung
Abstrakte Methode Muss deklariert werden kann erklären
Spezifische Methode Nicht unterstützt kann erklären
Mehrfachvererbung Unterstützung Nicht unterstützt
Instantiierung Kann nicht instanziiert werden Kann instanziiert werden, aber keine Objekte erstellen
Debuggen Schwierigkeit (im Implementierungskurs zu tun) Relativ einfach (machen Sie es in einem abstrakten Kurs)
Flexibilität und Skalierbarkeit Flexibler und skalierbarer Geringe Flexibilität und schwache Skalierbarkeit

Q10: Häufige Fallenfragen in Vorstellungsgesprächen

  • Mischen Sie Schnittstellen und abstrakte Klassen.
  • Falsche Annahme, dass Schnittstellen konkrete Methoden enthalten können.
  • Vergessen Sie, dass Methoden in Schnittstellen standardmäßig öffentlich und abstrakt sind.
  • Denken Sie, dass abstrakte Klassen Mehrfachvererbung unterstützen können.
  • Ich kann die Rolle von Standard- und statischen Schnittstellenmethoden nicht verstehen.

Das obige ist der detaillierte Inhalt vonGrundlagen von Java-Interviews: FAQs zu Schnittstellen und abstrakten Klassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:lsjlt.com
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