Heim >Java >javaLernprogramm >Unterschied zwischen Vererbung und Schnittstelle in Java

Unterschied zwischen Vererbung und Schnittstelle in Java

Susan Sarandon
Susan SarandonOriginal
2025-02-07 11:42:20451Durchsuche

Difference between Inheritance and Interface in Java

Vererbung und Schnittstelle in Java sind zwei verschiedene Code -Organisationsmethoden, mit denen Hierarchien zwischen Klassen erstellt und die Wiederverwendung von Code implementiert werden. Die Vererbung erstellt Unterklassen, indem die Eigenschaften und Methoden der übergeordneten Klasse kopiert werden, während die Schnittstelle eine Reihe von Methodensignaturen definiert, die speziell von der Implementierungsklasse implementiert werden. In diesem Artikel werden die wichtigsten Unterschiede zwischen den beiden erläutert und sie anhand von Java -Code -Beispielen veranschaulichen.

Code -Beispiel

Der folgende Code zeigt die Anwendung von Schnittstelle und Vererbung:

<code class="language-java">C.add(5, 10);
C.subtract(35, 15);
C.multiply(6, 9);
C.divide(45, 6);</code>

Ausgangsergebnis:

<code>The result is here. Have A Look : 15.0
The result is here. Have A Look : 20.0
The result is here. Have A Look : 54.0
The result is here. Have A Look : 7.5</code>

Unterschiede zwischen Vererbung und Schnittstelle

特性 继承 接口
定义 基类将行为传递给子类。 接口定义了所有声明方法的关系。
代码复用 通过重写方法复用超类代码。 通过多态性提高代码可重用性。
多继承支持 单继承(一个类只能继承一个父类),但可以有多个子类。 支持多继承,无需指定实现细节。

Erbschaft ermöglicht es einer Klasse, die Merkmale der übergeordneten Klasse und der Vorfahrklasse zu erben. Und die Schnittstelle definiert den Vertrag zwischen Abstraktion und Methodensatz.

Methoden und Algorithmen

Dieser Artikel verwendet Beispielcode, um zu demonstrieren, wie Sammlungen und Iteratoren verwendet werden, um Daten zu verarbeiten und Taschenrechnerfunktionen über Schnittstellen und Vererbung zu implementieren. Die Hauptschritte des Algorithmus sind wie folgt:

  1. deklarieren Sie den Eingangs- und Ausgangsstrom.
  2. Importieren Sie die erforderlichen Klassen und Funktionen.
  3. öffentliche Klassen definieren.
  4. Methoden definieren (addieren, subtrahieren, multiplizieren, dividieren, gedruckte Ergebnisse).
  5. Erstellen Sie ein Taschenrechnerobjekt und rufen Sie eine Methode auf.
  6. Drucken Sie das Ergebnis.

Grammatikbeispiel

Der folgende Code zeigt die Verwendung von Treeset, IdentityHashMap und Hashtable sowie der Anwendung von Iteratoren beim Durchqueren der Sammlung, um zu veranschaulichen, wie Vererbung und Schnittstellen funktionieren.

<code class="language-java">TreeSet STTREE = new TreeSet();
STTREE.add(4);
STTREE.add(5);
STTREE.add(6);
STTREE.add(8);
STTREE.add(4);

IdentityHashMap ihmap = new IdentityHashMap();
ihmap.put(10, "ARB");
ihmap.put(20, "RDD");
ihmap.put(30, "ARBRDD");
ihmap.put(40, "KOLDHKA");
ihmap.put(50, "You");

System.out.println("IdentityHashMap size : " + ihmap.size());
System.out.println("Initial identity hash map :  " + ihmap);

Hashtable table = new Hashtable();
table.put(1, "X");
table.put(2, "Y");
table.put(3, "Z");
table.put(4, "A");

for (Map.Entry m : table.entrySet()) {
    Iterator<map.entry> itr = ihmap.entrySet().iterator();
    while (itr.hasNext()) {
        IdentityHashMap.Entry entry = itr.next();
        TreeMap MAPTREE = new TreeMap();
        MAPTREE.put(2, 5);
        MAPTREE.put(3, 6);
        MAPTREE.put(4, 6);
        MAPTREE.put(2, 3);
    }
}</map.entry></code>

Diamantproblem (Diamantproblem)

Das Diamantproblem ist ein mögliches Problem bei mehreren Vererbung. Die multiple Vererbung von Schnittstellen vermeidet die Einschränkung der einzelnen Vererbung und verbessert die Code -Flexibilität und -Skalierbarkeit.

Code -Beispiel (unter Verwendung der Diamond -Methode)

Der folgende Code zeigt die Implementierung des Taschenrechners unter Verwendung von Schnittstellen und Implementierungsklassen:

<code class="language-java">import java.util.*;

interface ARBRDD {
    public void add(double x, double y);
    public void subtract(double x, double y);
}

interface Mul_Div {
    public void multiply(double x, double y);
    public void divide(double x, double y);
}

interface Calculator extends ARBRDD, Mul_Div {
    public void printResult(double result);
}

public class MyCalculator implements Calculator {
    // ... 方法实现 ...
}</code>

Schlussfolgerung

Dieser Artikel erklärt deutlich die Unterschiede zwischen Vererbung und Schnittstellen in Java durch Beispielcode und Tabellen und zeigt, wie sie in praktischen Fällen flexible und erweiterbare Programme erstellen können. Das Verständnis des Unterschieds zwischen Vererbung und Schnittstelle ist für das Schreiben hochwertiger Java-Code von wesentlicher Bedeutung.

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

Stellungnahme:
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