Diferența cheie – Moștenire vs interfață în Java
Java este un limbaj de programare dezvoltat de Sun Microsystems. Java poate fi folosit pentru a dezvolta diverse aplicații. Este un limbaj multi-paradigmă care acceptă orientat pe obiecte, structurat etc. Principalul avantaj al Java este că acceptă programarea orientată pe obiecte (OOP). Programatorul poate crea clase și obiecte. Există patru piloni în POO. Ele sunt moștenirea, polimorfismul, abstracția și încapsularea. Moștenirea și interfețele sunt legate de OOP. Diferența cheie dintre moștenire și interfață este că moștenirea constă în obținerea de noi clase din clasele existente, iar o interfață este să implementeze clase abstracte și moștenirea multiplă.
Ce este moștenirea în Java?
Moștenirea poate obține codul reutilizabil. Moștenirea ajută la reutilizarea atributelor și metodelor unei clase existente. Mecanismul de derivare a unei noi clase folosind clasa veche se numește moștenire. Vechea clasă este cunoscută ca clasă părinte sau super clasă. Clasa derivată se numește clasă copil sau subclasă.
Sintaxa moștenirii Java este următoarea.
class subclass_name extinde superclass_name {
declarație variabilă;
declarație metoda;
}
Conceptul de moștenire poate fi explicat folosind următorul exemplu. Să presupunem că există o clasă numită A după cum urmează.
clasa publică A{
sumă public nulă(){
System.out.println(„Suma”);
}
}
Dacă dorim să adăugăm o nouă metodă fără a schimba clasa existentă, o putem face după cum urmează.
clasa publică B{
public void sub(){
System.out.println(„Sub”);
}
}
Programatorul poate folosi moștenirea pentru a folosi clasa A sum().
clasa publică B extinde clasa A{
public void sub(){
System.out.println(„Sub”);
}
}
În funcția principală, este posibil să creați un obiect al lui B și să apelați sub(), care aparține clasei B și sum(), care aparține clasei A folosind moștenirea.
public static void main(String args){
B obj=nou B();
obj.sub();
obj.sum();
}
Există diferite tipuri de moștenire. Ele sunt moștenire unică, moștenire multiplă, moștenire pe mai multe niveluri și moștenire ierarhică. În moștenirea unică, există o clasă de bază și o clasă derivată. În moștenirea pe mai multe niveluri, există trei clase și anume, clasa de bază, clasa intermediară și clasa derivată. Clasa intermediară moștenește de la clasa de bază, iar clasa derivată moștenește de la clasa intermediară. În moștenirea ierarhică, există o clasă de bază și multe clase derivate. Există un tip special cunoscut sub numele de moștenire hibridă. Este o combinație de două sau mai multe tipuri de moștenire.
Figura 01: Moștenire
În Moștenirea multiplă există multe clase de bază și o clasă derivată. Să presupunem că clasele A și B sunt clasele de bază. Clasa C este clasa derivată. Dacă ambele clase A și B au aceeași metodă și programatorul apelează acea metodă din clasa derivată, va cauza o problemă de ambiguitate. Moștenirea a două clase poate provoca o eroare de compilare. Prin urmare, moștenirea multiplă nu este acceptată în Java. O interfață poate fi folosită pentru a depăși această problemă.
Ce este interfața în Java?
Abstracția este un proces de ascundere a detaliilor de implementare și de afișare numai a funcționalităților pentru utilizator. Abstracția poate fi realizată folosind clase sau interfețe abstracte. O metodă abstractă este o metodă fără implementare. O clasă cu cel puțin o metodă abstractă este o clasă abstractă. Exemplul unei clase abstracte este următorul.
clasa abstractă A{
abstract void sum();
}
Să presupunem că există două clase abstracte ca A și B. Pentru a implementa metode abstracte ale lui A și B, este creată o nouă clasă C. Atunci clasa C ar trebui să extindă atât A cât și B., Dar moștenirea multiplă nu este acceptată în Java. Prin urmare, ar trebui să utilizați interfețe. Interfețele pot fi folosite pentru a declara metode, dar nu este posibil să se definească metode. Nu este posibil să creați un obiect folosind interfețe. Clasa C ar trebui să implementeze toate metodele din interfața A și B.
interfață A{
void sum();
}
interfață B{
void sub();
}
instrumente de clasa C A, B{
sumă public nulă(){
System.out.println(„Sumare”);
}
public void sub(){
System.out.println(„Scădere”);
}
}
Acum, în programul principal este posibil să creați un obiect C și să apelați ambele metode.
public static void main (Șir argumente) {
C obj=nou C();
obj.sum();
obj.sub();
}
Deci, interfețele pot folosi pentru a implementa moștenirea multiplă.
O altă utilizare a interfețelor este că oferă securitate. Consultați codul de mai jos.
interfață A {
void sumă ();
}
instrumente de clasa B A {
sumă public nulă () {
System.out.println(„Sumare”);
}
public void multiplicare () {
System.out.println(„Multiplicare”);
}
}
Când creați un obiect al lui B, este posibil să apelați ambele metode sum () și multiplicare (). Dacă programatorul dorește să restricționeze folosind funcția de multiplicare (), este posibil după cum urmează.
public static void main(String args){
A obj=nou B();
obj.sum();
}
A obj=nou B(); va crea un obiect. Este de tip A și memoria este alocată ca B. Este posibil să apelați sum() dar nu se poate executa multiplica(). Această restricție se realizează folosind interfețe.
Care sunt asemănările dintre moștenire și interfață în Java?
- Ambele concepte sunt legate de programarea orientată pe obiecte
- Ambele reprezintă relația IS-A.
Care este diferența dintre moștenire și interfață în Java?
Moștenire vs interfață în Java |
|
Moștenirea este un concept POO pentru a obține clase noi din clasele existente. | Interfața este un mecanism în POO pentru a implementa abstracția și moștenirea multiplă. |
Utilizare | |
Moștenirea asigură reutilizarea codului. | Interfețele oferă abstractizare și moștenire multiplă. |
Rezumat – Moștenire vs interfață în Java
Java este un limbaj de programare cu mai multe paradigme care acceptă programarea orientată pe obiecte. Moștenirea și interfețele sunt legate de programarea orientată pe obiecte. Diferența dintre moștenire și interfață este că moștenirea constă în a obține noi clase din clasele existente, iar interfețele înseamnă a implementa clase abstracte și moștenirea multiplă.
Descărcați versiunea PDF a Heritance vs Interface în Java
Puteți descărca versiunea PDF a acestui articol și o puteți utiliza în scopuri offline, conform nota de citare. Vă rugăm să descărcați versiunea PDF aici Diferența dintre moștenire și interfață în Java