Skillnaden mellan magmusklertract-klass och gränssnitt i Java

Viktig skillnad mellan magmusklertract-klass och gränssnitt i Java

  • I gränssnitt kan en klass implementera flera gränssnitt, medan klassen bara kan ärva ett Abs.tract-klass.
  • In Interface har inga åtkomstmodifierare. Allt som definieras inuti Interface antas ha en publik modifierare, medan Abstract-klassen kan ha en åtkomstmodifierare.
  • Gränssnittet kan inte innehålla datafält, medan abstract-klassen kan ha datafält.
  • Gränssnitt hjälper till att definiera en klass perifera förmågor, medan en abstract-klassen definierar identiteten för en klass.

Gränssnitt kontra Abstract-klass i Java

Vad är en magmuskeltract-klass?

En klass som har magmusklernatracnyckelordet t i dess deklaration kallas abstract-klass. Magmusklertract-klasser bör ha noll eller fler magmusklertract-metoder. dvs. metoder utan kropp. Den kan ha flera konkreta metoder. Abstract-klasser låter dig skapa ritningar för konkreta klasser. Men den ärvande klassen bör implementera abstract-metoden. Abstract-klasser kan inte instansieras.

Viktiga skäl för att använda gränssnitt

  • Gränssnitt används för att uppnå abstraction.
  • Designad för att stödja dynamisk metodupplösning under körning
  • Det hjälper dig att uppnå lös koppling.
  • Låter dig skilja definitionen av en metod från arvshierarkin

Viktiga skäl för att använda magmusklertract-klass

  • Abstract-klasser erbjuder standardfunktionalitet för underklasserna.
  • Tillhandahåller en mall för framtida specifika klasser
  • Hjälper dig att definiera ett gemensamt gränssnitt för dess underklasser
  • Abstract-klassen möjliggör återanvändning av kod.

Vad är ett gränssnitt?

Gränssnittet är en ritning som kan användas för att implementera en klass. Gränssnittet innehåller inga konkreta metoder (metoder som har kod). Alla metoder i ett gränssnitt är abs.tract-metoder. Ett gränssnitt kan inte instansieras. Däremot kan klasser som implementerar gränssnitt instansieras. Gränssnitt innehåller aldrig instansvariabler, men de kan innehålla publika statiska slutvariabler (dvs. konstanta klassvariabler).

Skillnaden mellan gränssnitt och abstract-klass i Java

En magmuskeltract-klassen låter dig skapa funktionalitet som underklasser kan implementera eller åsidosätta medan ett gränssnitt bara tillåter dig att ange funktionalitet men inte att implementera den. En klass kan bara utöka en abstract-klassen medan en klass kan implementera flera gränssnitt.

Driftparametrar Gränssnitt AbstracT-klass
Fart Sakta Snabb
Flera arv Implementera flera gränssnitt Bara en magmuskeltracT-klass
Structure Abstract-metoder Abstract & konkreta metoder
När du ska använda den Framtida förbättring För att undvika självständighet
Arv/ Genomförande En klass kan implementera flera gränssnitt Klassen kan bara ärva en Abstract-klass
Standardimplementering Medan man lägger till nya saker till gränssnittet är det en mardröm att hitta alla implementerare och implementera nydefinierade saker. Vid magmusklertract-klassen kan du dra nytta av standardimplementeringen.
Åtkomstmodifierare Gränssnittet har inga åtkomstmodifierare. Allt som definieras i gränssnittet antas vara offentlig modifierare. Abstract-klassen kan ha en åtkomstmodifierare.
När du ska använda den Det är bättre att använda gränssnitt när olika implementeringar endast delar metodsignatur. Polymorf hierarki av värdetyper. Det bör användas när olika implementeringar av samma slag delar ett gemensamt beteende.
Datafält gränssnittet kan inte innehålla datafält. klassen kan ha datafält.
Multipelt arv Standard En klass kan implementera många gränssnitt. En klass ärver bara en magmuskeltract-klass.
Genomförande Ett gränssnitt är abstracså att den inte kan tillhandahålla någon kod. En magmuskeltract-klassen kan ge komplett standardkod som bör åsidosättas.
Användning av åtkomstmodifierare Du kan inte använda åtkomstmodifierare för metoden, egenskaper, etc. Du kan använda magmusklernatract-klassen som innehåller åtkomstmodifierare.
Användning Gränssnitt hjälper till att definiera en klasss perifera förmågor. En magmuskeltract-klassen definierar identiteten för en klass.
Definierade fält Inga fält kan definieras En magmuskeltract-klassen låter dig definiera både fält och konstanter
Arv Ett gränssnitt kan ärva flera gränssnitt men kan inte ärva en klass. En magmuskeltract-klassen kan ärva en klass och flera gränssnitt.
Konstruktör eller destruktörer Ett gränssnitt kan inte deklarera konstruktörer eller destruktörer. En magmuskeltract-klassen kan deklarera konstruktorer och destruktorer.
Gräns ​​för tillägg Det kan utöka valfritt antal gränssnitt. Den kan bara sträcka ut en klass eller en magetract-klass åt gången.
Abstract-nyckelord I magentract interface-nyckelord, är valfritt för att deklarera en metod som en abstract. I magentract-klass, magmusklernatracNyckelordet t är obligatoriskt för att deklarera en metod som en abstract.
Klasstyp Ett gränssnitt kan bara ha publika abstract-metoder. En magmuskeltract-klassen har skyddade och offentliga magmusklertract-metoder.

Exempelkod för gränssnitt och ABStract-klass i Java

Följande är exempelkod för att skapa ett gränssnitt och ABStract-klass i Java

Gränssnittssyntax

interface name{
//methods
}

Java Exempel på gränssnitt:

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-klasssyntax

abstract class name{
    // code
}

Abstract-klass exempel:

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

Sammanfatta detta inlägg med: