Unterschied zwischen Abstract Klasse und Schnittstelle in Java

Hauptunterschied zwischen Abstract Klasse und Schnittstelle in Java

  • In Interfaces kann eine Klasse mehrere Interfaces implementieren, während sie nur ein einziges Interface erben kann.tracKlasse t.
  • Interfaces verfügen nicht über Zugriffsmodifizierer. Alles, was innerhalb eines Interfaces definiert ist, hat standardmäßig den Modifikator „public“.tracEine Klasse kann einen Zugriffsmodifizierer haben.
  • Die Schnittstelle darf keine Datenfelder enthalten, wohingegen die absolute Schnittstelle keine Datenfelder enthalten darf.tracDie Klasse t kann Datenfelder haben.
  • Schnittstellen helfen dabei, die peripheren Fähigkeiten einer Klasse zu definieren, wohingegen eine absolutetracDie Klasse t definiert die Identität einer Klasse.

Schnittstelle vs. Abstract-Klasse in Java

Was ist ein Abs?tracKlasse t?

Eine Klasse, die die Abs hattracDas Schlüsselwort t in seiner Deklaration wird als abs bezeichnet.tract-Klasse. Abs.tract-Klassen sollten null oder mehr absolute Abweichungen haben.tract-Methoden. D.h. Methoden ohne Körper. Es können mehrere konkrete Methoden vorhanden sein. Abs.tract-Klassen ermöglichen es Ihnen, Blaupausen für konkrete Klassen zu erstellen. Die erbende Klasse sollte jedoch das absolute Interface implementieren.tract-Methode. Abs.tract-Klassen können nicht instanziiert werden.

Wichtige Gründe für den Einsatz von Schnittstellen

  • Schnittstellen werden verwendet, um dies zu erreichen abstracProduktion.
  • Entwickelt, um die dynamische Methodenauflösung zur Laufzeit zu unterstützen
  • Es hilft Ihnen, eine lose Kopplung zu erreichen.
  • Ermöglicht Ihnen, die Definition einer Methode von der Vererbungshierarchie zu trennen

Wichtige Gründe für die Verwendung von Abstract-Klasse

  • Abstract-Klassen bieten Standardfunktionalität für die Unterklassen.
  • Bietet eine Vorlage für zukünftige spezifische Klassen
  • Hilft Ihnen, eine gemeinsame Schnittstelle für seine Unterklassen zu definieren
  • AbstracDie t-Klasse ermöglicht die Wiederverwendbarkeit von Code.

Was ist eine Schnittstelle?

Das Interface ist eine Vorlage, die zur Implementierung einer Klasse verwendet werden kann. Das Interface enthält keine konkreten Methoden (Methoden mit Code). Alle Methoden eines Interfaces sind absolut.tracMethoden. Ein Interface kann nicht instanziiert werden. Klassen, die Interfaces implementieren, können jedoch instanziiert werden. Interfaces enthalten niemals Instanzvariablen, aber sie können öffentliche statische finale Variablen (d. h. konstante Klassenvariablen) enthalten.

Unterschied zwischen Schnittstelle und Abstract-Klasse in Java

Ein SixpacktracEine Klasse ermöglicht es Ihnen, Funktionalität zu definieren, die von Unterklassen implementiert oder überschrieben werden kann, während ein Interface Ihnen lediglich erlaubt, Funktionalität zu beschreiben, aber nicht zu implementieren. Eine Klasse kann nur von einer einzigen Klasse erben.tracEine Klasse kann mehrere Schnittstellen implementieren.

Kenngrößen Interface AbstracT-Klasse
Schnelligkeit langsam Schnell
Mehrfachvererbung Implementieren Sie mehrere Schnittstellen Nur ein BauchmuskeltracT-Klasse
Struktur Abstract-Methoden Abstract & konkrete Methoden
Wann zu verwenden Zukünftige Erweiterung Um Unabhängigkeit zu vermeiden
Vererbung/Implementierung Eine Klasse kann mehrere Schnittstellen implementieren Die Klasse kann nur ein Abs erben.tract-Klasse
Standardimplementierung Beim Hinzufügen neuer Dinge zur Schnittstelle ist es ein Albtraum, alle Implementierer zu finden und neu definierte Dinge zu implementieren. Im Falle von AbstracBei der t-Klasse können Sie die Standardimplementierung nutzen.
Zugriffsmodifikatoren Die Schnittstelle verfügt über keine Zugriffsmodifikatoren. Alles, was innerhalb der Schnittstelle definiert ist, wird als öffentlicher Modifikator angenommen. AbstracEine Klasse kann einen Zugriffsmodifizierer haben.
Wann zu verwenden Es ist besser, die Schnittstelle zu verwenden, wenn verschiedene Implementierungen nur die Methodensignatur gemeinsam nutzen. Polymorphe Hierarchie von Werttypen. Es sollte verwendet werden, wenn verschiedene Implementierungen derselben Art ein gemeinsames Verhalten aufweisen.
Datenfelder Die Schnittstelle darf keine Datenfelder enthalten. Die Klasse kann Datenfelder haben.
Mehrfachvererbung Standard Eine Klasse kann zahlreiche Schnittstellen implementieren. Eine Klasse erbt nur einen Abs.tract-Klasse.
Umsetzung Eine Schnittstelle ist absoluttract, sodass es keinen Code liefern kann. Ein SixpacktracDie Klasse t kann vollständigen Standardcode liefern, der überschrieben werden sollte.
Verwendung von Access-Modifikatoren Sie können keine Zugriffsmodifikatoren für die Methode, Eigenschaften usw. verwenden. Sie können ein Bauchmuskeltraining durchführen.tract-Klasse, die Zugriffsmodifizierer enthält.
Anwendungsbereich Schnittstellen helfen dabei, die peripheren Fähigkeiten einer Klasse zu definieren. Ein SixpacktracDie Klasse t definiert die Identität einer Klasse.
Definierte Felder Es können keine Felder definiert werden Ein SixpacktracDie Klasse t ermöglicht es Ihnen, sowohl Felder als auch Konstanten zu definieren.
Erbe Eine Schnittstelle kann mehrere Schnittstellen erben, jedoch keine Klasse. Ein SixpacktracEine Klasse kann von einer anderen Klasse und mehreren Schnittstellen erben.
Konstruktor oder Destruktoren Eine Schnittstelle kann keine Konstruktoren oder Destruktoren deklarieren. Ein SixpacktracDie Klasse t kann Konstruktoren und Destruktoren deklarieren.
Begrenzung der Erweiterungen Es kann beliebig viele Schnittstellen erweitern. Es kann nur eine Klasse oder einen Abs-Wert erweitern.tracjeweils eine Klasse.
Abstract-Schlüsselwort In einem AbstracDas Schlüsselwort t für die Schnittstelle ist optional, um eine Methode als absolute Methode zu deklarieren.tract. In einem Abstract-Klasse, die AbstracDas Schlüsselwort t ist obligatorisch, um eine Methode als absolute Methode zu deklarieren.tract.
Klassentyp Eine Schnittstelle kann nur öffentliche absolute Werte haben.tract-Methoden. Ein SixpacktracDie Klasse t ist geschützt und die Öffentlichkeit ist abs.tract-Methoden.

Beispielcode für Interface und Abstract-Klasse in Java

Im Folgenden finden Sie Beispielcode zum Erstellen einer Schnittstelle und eines Abs-Codes.tract-Klasse in Java

Schnittstellensyntax

interface name{
//methods
}

Java Schnittstellenbeispiel:

interface Pet {
    public void test();
}
class Dog implements Pet {
    public void test() {
        System.out.println("Interface Method Implemented");
    }
    public static void main(String args[]) {
        Pet p = new Dog();
        p.test();
    }
}

Abstract-Klassensyntax

abstract class name{
    // code
}

AbstracBeispiel für die t-Klasse:

abstract class Shape {
    int b = 20;
    abstract public void calculateArea();
}

public class Rectangle extends Shape {
    public static void main(String args[]) {
        Rectangle obj = new Rectangle();
        obj.b = 200;
        obj.calculateArea();
    }
    public void calculateArea() {
        System.out.println("Area is " + (b * b));
    }
}

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: