Kaj je vmesnik?
Vmesnik je načrt, ki ga lahko uporabimo za izvedbo razreda. Vmesnik ne vsebuje nobenih konkretnih metod (metod, ki imajo kodo). Vse metode vmesnika so abstraktne metode.
Vmesnika ni mogoče ustvariti. Vendar je mogoče razrede, ki izvajajo vmesnike, ustvariti z instanco. Vmesniki nikoli ne vsebujejo spremenljivk primerkov, lahko pa vsebujejo javne statične končne spremenljivke (tj. Spremenljivke konstantnega razreda)
Kaj je abstraktni razred?
Razred, ki ima v deklaraciji abstraktno ključno besedo, se imenuje abstraktni razred. Abstraktni razredi morajo imeti vsaj eno abstraktno metodo. , tj. metode brez telesa. Lahko ima več konkretnih metod.
Abstraktni razredi vam omogočajo, da ustvarite načrte za konkretne razrede. Toda razred dedovanja mora izvajati abstraktno metodo.
Izvlečkov predavanj ni mogoče ustvariti.
Pomembni razlogi za uporabo vmesnikov
- Vmesniki se uporabljajo za doseganje abstrakcije.
- Zasnovan za podporo dinamične ločljivosti metode med izvajanjem
- Pomaga vam pri ohlapnem spenjanju.
- Omogoča ločitev definicije metode od hierarhije dedovanja
Pomembni razlogi za uporabo abstraktnega predavanja
- Abstraktni razredi ponujajo privzeto funkcionalnost za podrazrede.
- Ponuja predlogo za prihodnje posebne razrede
- Pomaga vam določiti skupni vmesnik za njegove podrazrede
- Razred Povzetek omogoča ponovno uporabo kode.
Vmesnik Vs. Povzetek
Abstraktni razred vam omogoča, da ustvarite funkcionalnost, ki jo lahko podrazredi implementirajo ali preglasijo, medtem ko vam vmesnik dovoljuje samo navajanje funkcionalnosti, ne pa tudi njeno izvajanje. Razred lahko razširi samo en abstraktni razred, medtem ko lahko razred implementira več vmesnikov.
Parametri | Vmesnik | Povzetek pouka |
---|---|---|
Hitrost | Počasi | Hitro |
Več dediščin | Izvedite več vmesnikov | Samo en abstraktni razred |
Struktura | Abstraktne metode | Povzetek in konkretne metode |
Kdaj uporabiti | Izboljšava v prihodnosti | Da bi se izognili neodvisnosti |
Dedovanje / izvajanje | Razred lahko izvaja več vmesnikov | Razred lahko podeduje samo en abstraktni razred |
Privzeta izvedba | Medtem ko vmesniku dodajate nove stvari, je nočna mora najti vse izvedbe in uvesti novo definirane stvari. | V primeru abstraktnega razreda lahko izkoristite privzeto izvedbo. |
Modifikatorji dostopa | Vmesnik nima modifikatorjev dostopa. Vse, kar je določeno v vmesniku, je predpostavljeno kot javni modifikator. | Razred Povzetek ima lahko modifikator dostopa. |
Kdaj uporabiti | Bolje je uporabiti vmesnik, kadar si različne izvedbe delijo samo podpis metode. Polimorfna hierarhija tipov vrednosti. | Uporabiti ga je treba, kadar različne izvedbe iste vrste delijo skupno vedenje. |
Podatkovna polja | vmesnik ne more vsebovati podatkovnih polj. | razred ima lahko podatkovna polja. |
Privzeta nastavitev za večkratno dedovanje | Razred lahko izvaja številne vmesnike. | Razred podeduje samo en abstraktni razred. |
Izvajanje | Vmesnik je abstrakten, tako da ne more zagotoviti nobene kode. | Abstraktni razred lahko poda popolno, privzeto kodo, ki jo je treba preglasiti. |
Uporaba modifikatorjev Access | Modifikatorjev dostopa ne morete uporabljati za metodo, lastnosti itd. | Uporabite lahko abstraktni razred, ki vsebuje modifikatorje dostopa. |
Uporaba | Vmesniki pomagajo določiti zunanje sposobnosti razreda. | Abstraktni razred definira identiteto razreda. |
Določena polja | Nobenega polja ni mogoče določiti | Abstraktni razred vam omogoča definiranje polj in konstant |
Dedovanje | Vmesnik lahko podeduje več vmesnikov, ne more pa podedovati razreda. | Abstraktni razred lahko podeduje razred in več vmesnikov. |
Konstruktor ali destruktorji | Vmesnik ne more prijaviti konstruktorjev ali destruktorjev. | Abstraktni razred lahko razglasi konstruktorje in destruktorje. |
Omejitev razširitev | Razširi lahko poljubno število vmesnikov. | Hkrati lahko razširi samo en razred ali en abstraktni razred. |
Povzetek ključne besede | Ključna beseda v abstraktnem vmesniku ni obvezna za razglasitev metode kot abstrakta. | V abstraktnem razredu je abstraktna ključna beseda obvezna za razglasitev metode kot abstraktne. |
Vrsta razreda | Vmesnik ima lahko samo javne abstraktne metode. | Abstraktni razred ima zaščitene in javne abstraktne metode. |
Vzorčna koda za vmesniški in abstraktni razred v Javi
Sledi vzorčna koda za ustvarjanje vmesnika in abstraktnega razreda v Javi
Sintaksa vmesnika
interface name{//methods}
Primer vmesnika Java:
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();}}
Sintaksa abstraktnega razreda
abstract class name{// code}
Primer abstraktnega predavanja:
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 " + (obj.b * obj.b));}}