Különbség a hasizmok közötttracOsztály és interfész Java

Főbb különbség a hasizmok közötttracOsztály és interfész Java

  • Az Interface-ben egy osztály több interfészt is megvalósíthat, míg az osztály csak egy Ab-t örökölhet.tract osztály.
  • Az Interface-ben nincsenek hozzáférési módosítók. Az Interface-ben definiált összes elemről feltételezzük, hogy rendelkezik nyilvános módosítóval, míg az Abs-róltracAz osztálynak lehet hozzáférési módosítója.
  • Az Interface nem tartalmazhat adatmezőket, míg az abs.tracA t osztály tartalmazhat adatmezőket.
  • Az interfészek segítenek meghatározni egy osztály perifériás képességeit, míg egy absz.tracA t osztály definiálja az osztály identitását.

Interfész vs. Hasizmoktract Osztály Java

Mi az a hasizmok?tract osztály?

Egy osztály, aminek megvannak a hasizmoitracA deklarációjában szereplő t kulcsszót abs-nak hívják.tract osztály. HasizmoktracA t osztályoknak nulla vagy több hasizommal kell rendelkezniüktract metódusok. Azaz törzs nélküli metódusok. Több konkrét metódusa is lehet. Absz.tracA t osztályok lehetővé teszik a konkrét osztályok tervrajzainak létrehozását. De az öröklő osztálynak meg kell valósítania az abs-ttract-módszer. Abs.tracA t osztályok nem példányosíthatók.

Az interfészek használatának fontos okai

  • Az eléréshez interfészeket használnak abstracCIÓ.
  • Úgy tervezték, hogy futásidőben támogassa a dinamikus módszerfelbontást
  • Segít elérni a laza kötést.
  • Lehetővé teszi a metódus definíciójának elkülönítését az öröklési hierarchiától

Fontos okok a hasizom használatáratract osztály

  • AbstracA t osztályok alapértelmezett funkciókat kínálnak az alosztályok számára.
  • Sablont biztosít a jövőbeli konkrét osztályokhoz
  • Segít meghatározni egy közös interfészt az alosztályaihoz
  • AbstracA t osztály lehetővé teszi a kód újrafelhasználhatóságát.

Mi az interfész?

Az interfész egy tervrajz, amely egy osztály megvalósítására használható. Az interfész nem tartalmaz konkrét metódusokat (kóddal rendelkező metódusokat). Az interfész összes metódusa abszolúttract metódusok. Egy interfész nem példányosítható. Azonban az interfészeket megvalósító osztályok példányosíthatók. Az interfészek soha nem tartalmaznak példányváltozókat, de tartalmazhatnak nyilvános statikus final változókat (azaz konstans osztályváltozókat).

Az interfész és az abs közötti különbségtract Osztály Java

Egy hasizmottracA t osztály lehetővé teszi olyan funkciók létrehozását, amelyeket az alosztályok megvalósíthatnak vagy felülírhatnak, míg egy interfész csak a funkciók megadását teszi lehetővé, de nem az implementálását. Egy osztály csak egyetlen alosztályt bővíthet ki.tract osztály, míg egy osztály több interfészt is megvalósíthat.

paraméterek Felület Abstract osztály
Sebesség Lassíts Gyors
Többszörös öröklődés Több interfészt valósítson meg Csak egy hasizmottract osztály
Szerkezet Abstract-módszerek Abstract és konkrét módszerek
Mikor kell használni Jövőbeli fejlesztés A függetlenség elkerülése érdekében
Öröklés/végrehajtás Egy osztály több interfészt is megvalósíthat Az osztály csak egy Abs-t örökölhettract osztály
Alapértelmezett megvalósítás Miközben új dolgokat adunk hozzá a felülethez, rémálom megtalálni az összes implementert és megvalósítani az újonnan definiált dolgokat. Hasizmok eseténtract osztály, kihasználhatja az alapértelmezett implementáció előnyeit.
Hozzáférés módosítók A felület nem rendelkezik hozzáférésmódosítókkal. Az interfészen belül minden meghatározott nyilvános módosítónak minősül. AbstracAz osztálynak lehet hozzáférési módosítója.
Mikor kell használni Jobb az interfészt használni, ha a különböző megvalósítások csak metódus aláírást osztanak meg. Értéktípusok polimorf hierarchiája. Akkor kell használni, ha az azonos típusú különféle megvalósítások közös viselkedést mutatnak.
Adatmezők a felület nem tartalmazhat adatmezőket. az osztálynak lehetnek adatmezői.
Többszörös öröklés alapértelmezés Egy osztály számos interfészt valósíthat meg. Egy osztály csak egy hasizmot örököltract osztály.
Implementáció Egy interfész abszolúttract, hogy ne tudjon semmilyen kódot megadni. Egy hasizmottracA t osztály teljes, alapértelmezett kódot adhat meg, amelyet felül kell írni.
Hozzáférés-módosítók használata Nem használhat hozzáférésmódosítókat a metódusokhoz, tulajdonságokhoz stb. Használhatsz hasizmottract osztály, amely hozzáférési módosítókat tartalmaz.
Használat Az interfészek segítenek meghatározni egy osztály perifériás képességeit. Egy hasizmottracA t osztály definiálja az osztály identitását.
Meghatározott mezők Nem definiálható mező Egy hasizmottracA t osztály lehetővé teszi mind mezők, mind konstansok definiálását
Öröklés Egy interfész több interfészt is örökölhet, de osztályt nem. Egy hasizmottracA t osztály örökölhet egy osztályt és több interfészt.
Konstruktor vagy rombolók Egy interfész nem deklarálhat konstruktorokat vagy destruktorokat. Egy hasizmottracA t osztály deklarálhat konstruktorokat és destruktorokat.
Kiterjesztések korlátja Tetszőleges számú interfészt tud bővíteni. Csak egy edzést vagy egy hasizmot tud kiterjesztenitract osztály egyszerre.
Abstrackulcsszó Hasizmoktract interface kulcsszó, opcionális egy metódus absz.-ként való deklarálásáhoztract. Hasizmoktract osztály, hasizmoktracA t kulcsszó kötelező egy metódus absz deklarálásáhoztract.
Osztály típusa Egy interfésznek csak nyilvános absz. értékei lehetnek.tract módszerek. Egy hasizmottracA t osztály védett és nyilvános hasizmokkal rendelkeziktract módszerek.

Mintakód az Interface és az Abs számáratract Osztály Java

A következő példakód egy interfész és egy ABS létrehozásáhoztract osztályban Java

Interfész szintaxis

interface name{
//methods
}

Java Interfész példa:

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 osztály szintaxis

abstract class name{
    // code
}

Abstract osztály példa:

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

Foglald össze ezt a bejegyzést a következőképpen: