Verschil tussen Abstract Klasse en interface in Java

Belangrijkste verschil tussen Abstract Klasse en interface in Java

  • In een interface kan een klasse meerdere interfaces implementeren, terwijl een klasse slechts รฉรฉn interface kan overerven.tract Klasse.
  • Een interface heeft geen toegangsmodifiers. Alles wat binnen de interface is gedefinieerd, wordt verondersteld een openbare modifier te hebben, terwijl AbstracEen klasse kan een toegangsaanpasser hebben.
  • De interface kan geen gegevensvelden bevatten, terwijl de abs dat wel kan.tracEen t-klasse kan gegevensvelden bevatten.
  • Interfaces helpen bij het definiรซren van de perifere mogelijkheden van een klasse, terwijl een abstractielaag de mogelijkheden van een klasse definieert.tracDe klasse t definieert de identiteit van een klasse.

Interface versus Abstract Klasse in Java

Wat is een buikspier?tract-klas?

Een les met buikspierentracHet sleutelwoord 't' in de declaratie wordt abs genoemd.tract-klasse. Buikspierentract-klassen moeten nul of meer abs hebben.tract-methoden. Dat wil zeggen, methoden zonder een concrete inhoud. Het kan meerdere concrete methoden bevatten. AbstracMet t-klassen kun je blauwdrukken maken voor concrete klassen. De overervende klasse moet echter wel de abs-interface implementeren.tract-methode. Abstract-klassen kunnen niet worden geรฏnstantieerd.

Belangrijke redenen voor het gebruik van interfaces

  • Interfaces worden gebruikt om te bereiken abstractie.
  • Ontworpen om dynamische methoderesolutie tijdens runtime te ondersteunen
  • Het helpt u om losse koppeling te bereiken.
  • Hiermee kunt u de definitie van een methode scheiden van de overervingshiรซrarchie

Belangrijke redenen om ABS te gebruikentract Klasse

  • AbstracDe t-klassen bieden standaardfunctionaliteit voor de subklassen.
  • Biedt een sjabloon voor toekomstige specifieke lessen
  • Helpt u bij het definiรซren van een gemeenschappelijke interface voor de subklassen
  • AbstracDe t-klasse maakt hergebruik van code mogelijk.

Wat is een interface?

Een interface is een blauwdruk die gebruikt kan worden om een โ€‹โ€‹klasse te implementeren. Een interface bevat geen concrete methoden (methoden met code). Alle methoden van een interface zijn abstract.tract-methoden. Een interface kan niet worden geรฏnstantieerd. Klassen die interfaces implementeren, kunnen echter wel worden geรฏnstantieerd. Interfaces bevatten nooit instantievariabelen, maar wel publieke statische final-variabelen (dat wil zeggen, constante klassevariabelen).

Verschil tussen interface en abstract Klasse in Java

Een buiktracEen klasse stelt je in staat functionaliteit te definiรซren die subklassen kunnen implementeren of overschrijven, terwijl een interface je alleen toestaat functionaliteit te definiรซren, maar niet te implementeren. Een klasse kan slechts รฉรฉn interface uitbreiden.tracEen klasse kan meerdere interfaces implementeren.

Kenmerken Interface Abstract-klasse
Snelheid Langzaam Snel
Meerdere erfenissen Implementeer verschillende interfaces Slechts รฉรฉn buikspiertract-klasse
Structuur Abstract-methoden Abstract & concrete methoden
Wanneer te gebruiken Toekomstige uitbreiding Om onafhankelijkheid te voorkomen
Erfenis/implementatie Een klasse kan meerdere interfaces implementeren De klasse kan slechts รฉรฉn Abs overerven.tract Klasse
Standaard implementatie Terwijl je nieuwe dingen aan de interface toevoegt, is het een nachtmerrie om alle implementeerders te vinden en nieuw gedefinieerde dingen te implementeren. In geval van AbstracIn de t-klasse kunt u gebruikmaken van de standaardimplementatie.
Toegangsmodificaties De interface heeft geen toegangsmodificatoren. Alles wat binnen de interface is gedefinieerd, wordt verondersteld een openbare modifier te zijn. AbstracEen klasse kan een toegangsaanpasser hebben.
Wanneer te gebruiken Het is beter om de interface te gebruiken wanneer verschillende implementaties alleen de handtekening van de methode delen. Polymorfe hiรซrarchie van waardetypen. Het moet worden gebruikt wanneer verschillende implementaties van dezelfde soort een gemeenschappelijk gedrag delen.
Data velden de interface kan geen gegevensvelden bevatten. de klasse kan gegevensvelden hebben.
Standaard voor meerdere overerving Een klasse kan talloze interfaces implementeren. Een klasse erft slechts รฉรฉn abstract-klasse.
Implementatie Een interface is abstraczodat het geen code kan leveren. Een buiktracDe klasse t kan volledige, standaardcode bevatten die overschreven moet worden.
Gebruik van Access-modifiers U kunt geen toegangsmodifiers gebruiken voor de methode, eigenschappen, enz. Je kunt een buikspieroefening gebruiken.tract-klasse die toegangsmodifiers bevat.
Gebruik Interfaces helpen bij het definiรซren van de perifere capaciteiten van een klas. Een buiktracDe klasse t definieert de identiteit van een klasse.
Gedefinieerde velden Er kunnen geen velden worden gedefinieerd Een buiktracMet de klasse t kunt u zowel velden als constanten definiรซren.
Erfenis Een interface kan meerdere interfaces erven, maar kan geen klasse erven. Een buiktracEen klasse kan een andere klasse en meerdere interfaces overerven.
Constructeur of destructeur Een interface kan geen constructors of destructors declareren. Een buiktracEen klasse t kan constructors en destructors declareren.
Limiet van extensies Het kan een willekeurig aantal interfaces uitbreiden. Het kan slechts รฉรฉn klasse of รฉรฉn abs-blok omvatten.tract klas tegelijk.
Abstract trefwoord In een abstracHet `t interface`-sleutelwoord is optioneel voor het declareren van een methode als een abs-methode.tract. In een abstract-klasse, de buikspierentracHet sleutelwoord 't' is verplicht om een โ€‹โ€‹methode als een abs te declareren.tract.
Klassetype Een interface kan alleen openbare abs hebben.tract-methoden. Een buiktracDe klasse T heeft beschermde en openbare abs.tract-methoden.

Voorbeeldcode voor Interface en Abstract Klasse in Java

Hieronder volgt voorbeeldcode voor het maken van een interface en abstract klasse in Java

Interface-syntaxis

interface name{
//methods
}

Java Interfacevoorbeeld:

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 Klassensyntaxis

abstract class name{
    // code
}

Abstract-klasse voorbeeld:

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

Vat dit bericht samen met: