logo

Razlika med abstraktnim razredom in vmesnikom

Abstraktni razred in vmesnik se uporabljata za doseganje abstrakcije, kjer lahko deklariramo abstraktne metode. Abstraktnega razreda in vmesnika ni mogoče instancirati.

stringbuilder

Obstaja pa veliko razlik med abstraktnim razredom in vmesnikom, ki so navedene spodaj.

Abstraktni razredVmesnik
1) Abstraktni razred lahko imajo abstraktno in neabstraktno metode.Vmesnik lahko ima samo abstraktno metode. Od Jave 8 lahko privzete in statične metode tudi.
2) Abstraktni razred ne podpira večkratnega dedovanja .Vmesnik podpira večkratno dedovanje .
3) Abstraktni razred ima lahko končne, nekončne, statične in nestatične spremenljivke .Vmesnik ima samo statične in končne spremenljivke .
4) Abstraktni razred lahko zagotovi implementacijo vmesnika .Vmesnik ne more zagotoviti implementacije abstraktnega razreda .
5) The abstraktna ključna beseda se uporablja za deklaracijo abstraktnega razreda.The ključna beseda vmesnika se uporablja za deklaracijo vmesnika.
6) An abstraktni razred lahko razširi drug razred Java in implementira več vmesnikov Java.An vmesnik lahko razširi le drug vmesnik Java.
7) An abstraktni razred lahko razširite s ključno besedo 'razširja'.An vmesnik je mogoče implementirati s ključno besedo 'implements'.
8) Na Javo abstraktni razred ima lahko člane razreda, kot so zasebni, zaščiteni itd.Člani vmesnika Java so privzeto javni.
9) primer:
javni abstraktni razred Shape{
javni abstraktni void draw();
}
primer:
javni vmesnik Drawable{
void draw();
}

Preprosto, abstraktni razred doseže delno abstrakcijo (0 do 100 %), medtem ko vmesnik doseže popolno abstrakcijo (100 %).

Primer abstraktnega razreda in vmesnika v Javi

Oglejmo si preprost primer, kjer uporabljamo vmesnik in abstraktni razred.

dodajanje nizov java
 //Creating interface that has 4 methods interface A{ void a();//bydefault, public and abstract void b(); void c(); void d(); } //Creating abstract class that provides the implementation of one method of A interface abstract class B implements A{ public void c(){System.out.println('I am C');} } //Creating subclass of abstract class, now we need to provide the implementation of rest of the methods class M extends B{ public void a(){System.out.println('I am a');} public void b(){System.out.println('I am b');} public void d(){System.out.println('I am d');} } //Creating a test class that calls the methods of A interface class Test5{ public static void main(String args[]){ A a=new M(); a.a(); a.b(); a.c(); a.d(); }} 
Preizkusite zdaj

Izhod:

 I am a I am b I am c I am d