Forskjellen mellom magemusklertract-klasse og grensesnitt i Java

Hovedforskjellen mellom magemusklertract-klasse og grensesnitt i Java

  • I grensesnitt kan en klasse implementere flere grensesnitt, mens klassen bare kan arve ett Abs.tract-klasse.
  • In Interface har ikke tilgangsmodifikatorer. Alt som er definert i Interface antas รฅ ha en offentlig modifikator, mens Abstract-klassen kan ha en tilgangsmodifikator.
  • Grensesnittet kan ikke inneholde datafelt, mens abstract-klassen kan ha datafelt.
  • Grensesnitt bidrar til รฅ definere en klasses perifere evner, mens en abstract-klassen definerer identiteten til en klasse.

Grensesnitt vs. Abstract-klasse i Java

Hva er en magemuskeltract-klasse?

En klasse som har magemusklertract-nรธkkelordet i deklarasjonen kalles abstract-klasse. Magemusklertract-klasser bรธr ha null eller mer magemusklertract-metoder. dvs. metoder uten kropp. Den kan ha flere konkrete metoder. Abstract-klasser lar deg lage tegninger for konkrete klasser. Men den arvende klassen bรธr implementere abstract-metoden. Abstract-klasser kan ikke instansieres.

Viktige grunner til รฅ bruke grensesnitt

  • Grensesnitt brukes for รฅ oppnรฅ abstracsjon.
  • Designet for รฅ stรธtte dynamisk metodeopplรธsning under kjรธretid
  • Det hjelper deg รฅ oppnรฅ lรธs kobling.
  • Lar deg skille definisjonen av en metode fra arvehierarkiet

Viktige grunner til รฅ bruke magemusklertract-klasse

  • Abstract-klasser tilbyr standardfunksjonalitet for underklassene.
  • Gir en mal for fremtidige spesifikke klasser
  • Hjelper deg med รฅ definere et felles grensesnitt for underklassene
  • Abstract-klassen tillater gjenbruk av kode.

Hva er et grensesnitt?

Grensesnittet er en blรฅkopi som kan brukes til รฅ implementere en klasse. Grensesnittet inneholder ingen konkrete metoder (metoder som har kode). Alle metodene i et grensesnitt er abs.tract-metoder. Et grensesnitt kan ikke instansieres. Klasser som implementerer grensesnitt kan imidlertid instansieres. Grensesnitt inneholder aldri instansvariabler, men de kan inneholde offentlige statiske sluttvariabler (dvs. konstante klassevariabler)

Forskjellen mellom grensesnitt og abstract-klasse i Java

En magemuskeltract-klassen lar deg lage funksjonalitet som underklasser kan implementere eller overstyre, mens et grensesnitt bare lar deg angi funksjonalitet, men ikke implementere den. En klasse kan bare utvide รฉn abs.tract-klassen mens en klasse kan implementere flere grensesnitt.

Parametre Interface AbstracT-klasse
Speed Sakte Rask
Flere arv Implementer flere grensesnitt Bare รฉn magemuskeltracT-klasse
Structure Abstract-metoder Abstract & konkrete metoder
Nรฅr skal brukes Fremtidig forbedring For รฅ unngรฅ uavhengighet
Arv/ Gjennomfรธring En klasse kan implementere flere grensesnitt Klassen kan bare arve รฉn Abstract-klasse
Standardimplementering Mens du legger til nye ting til grensesnittet, er det et mareritt รฅ finne alle implementรธrene og implementere nydefinerte ting. I tilfelle av magemusklertract-klassen, kan du dra nytte av standardimplementeringen.
Tilgangsmodifikatorer Grensesnittet har ikke tilgangsmodifikatorer. Alt som er definert inne i grensesnittet antas offentlig modifikator. Abstract-klassen kan ha en tilgangsmodifikator.
Nรฅr skal brukes Det er bedre รฅ bruke grensesnitt nรฅr ulike implementeringer kun deler metodesignatur. Polymorfisk hierarki av verdityper. Den bรธr brukes nรฅr ulike implementeringer av samme type deler en felles atferd.
Datafelt grensesnittet kan ikke inneholde datafelt. klassen kan ha datafelt.
Multiple Inheritance Standard En klasse kan implementere en rekke grensesnitt. En klasse arver bare รฉn magemuskeltract-klassen.
Gjennomfรธring Et grensesnitt er abstract slik at den ikke kan gi noen kode. En magemuskeltract-klassen kan gi komplett standardkode som bรธr overskrives.
Bruk av Access-modifikatorer Du kan ikke bruke tilgangsmodifikatorer for metoden, egenskaper osv. Du kan bruke magemusklenetract-klassen som inneholder tilgangsmodifikatorer.
bruk Grensesnitt bidrar til รฅ definere de perifere evnene til en klasse. En magemuskeltract-klassen definerer identiteten til en klasse.
Definerte felt Ingen felt kan defineres En magemuskeltract-klassen lar deg definere bรฅde felt og konstanter
Arv Et grensesnitt kan arve flere grensesnitt, men kan ikke arve en klasse. En magemuskeltract-klassen kan arve en klasse og flere grensesnitt.
Konstruktรธr eller destruktorer Et grensesnitt kan ikke deklarere konstruktรธrer eller destruktorer. En magemuskeltract-klassen kan deklarere konstruktรธrer og destruktรธrer.
Begrensning av utvidelser Den kan utvide et hvilket som helst antall grensesnitt. Den kan bare forlenge รฉn klasse eller รฉn magemuskel.tract-klasse om gangen.
Abstract-nรธkkelord I en magetract interface-nรธkkelord, er valgfritt for รฅ deklarere en metode som en abstract. I en magetract-klassen, magemusklenetract-nรธkkelordet er obligatorisk for รฅ deklarere en metode som en abstract.
Klassetype Et grensesnitt kan bare ha offentlige abstract-metoder. En magemuskeltract-klassen har beskyttet og offentlig magetract-metoder.

Eksempelkode for grensesnitt og ABStract-klasse i Java

Fรธlgende er eksempelkode for รฅ lage et grensesnitt og abstract-klasse i Java

Grensesnittsyntaks

interface name{
//methods
}

Java Eksempel pรฅ grensesnitt:

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

abstract class name{
    // code
}

AbstracEksempel pรฅ 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));
    }
}

Oppsummer dette innlegget med: