logo

Atšķirība starp abstrakto klasi un interfeisu

Abstraktā klase un interfeiss tiek izmantoti, lai panāktu abstrakciju, kur mēs varam deklarēt abstraktās metodes. Abstrakto klasi un saskarni nevar izveidot.

int uz virkni konvertēšanu java

Bet ir daudz atšķirību starp abstrakto klasi un interfeisu, kas ir norādītas tālāk.

Abstraktā klaseInterfeiss
1) Abstraktā klase var ir abstrakts un neabstrakts metodes.Interfeiss var būt tikai abstrakts metodes. Kopš Java 8, tas var būt noklusējuma un statiskās metodes arī.
2) Abstraktā klase neatbalsta vairākkārtēju mantojumu .Interfeiss atbalsta vairāku mantojumu .
3) Abstraktā klase var būt galīgi, negalīgi, statiski un nestatiski mainīgie .Interfeisam ir tikai statiskie un galīgie mainīgie .
4) Abstraktā klase var nodrošināt interfeisa ieviešanu .Interfeiss nevar nodrošināt abstraktās klases ieviešanu .
5) abstrakts atslēgvārds tiek izmantots, lai deklarētu abstraktu klasi.The interfeisa atslēgvārds tiek izmantots interfeisa deklarēšanai.
6) An abstraktā klase var paplašināt citu Java klasi un ieviest vairākas Java saskarnes.An saskarne var paplašināt tikai citu Java interfeisu.
7) An abstraktā klase var paplašināt, izmantojot atslēgvārdu 'paplašinās'.An saskarne var ieviest, izmantojot atslēgvārdu 'ierīces'.
8) uz Java abstraktā klase var būt klases dalībnieki, piemēram, privāti, aizsargāti utt.Java saskarnes dalībnieki pēc noklusējuma ir publiski.
9) Piemērs:
publiska abstrakta klase Forma{
publisks abstract void draw();
}
Piemērs:
publiska saskarne Drawable{
Void draw ();
}

Vienkārši abstraktā klase sasniedz daļēju abstrakciju (0 līdz 100%), savukārt saskarne nodrošina pilnīgu abstrakciju (100%).

abstraktajai klasei var būt konstruktors

Abstraktās klases un interfeisa piemērs Java

Apskatīsim vienkāršu piemēru, kur mēs izmantojam gan interfeisu, gan abstrakto klasi.

 //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(); }} 
Izmēģiniet to tūlīt

Izvade:

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