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: