Diferència entre l'herència i la interfície a Java

Taula de continguts:

Diferència entre l'herència i la interfície a Java
Diferència entre l'herència i la interfície a Java

Vídeo: Diferència entre l'herència i la interfície a Java

Vídeo: Diferència entre l'herència i la interfície a Java
Vídeo: Diferencia entre clases abstractas e interfaces en Java 2024, Juliol
Anonim

Diferència clau: herència vs interfície a Java

Java és un llenguatge de programació desenvolupat per Sun Microsystems. Java es pot utilitzar per desenvolupar diverses aplicacions. És un llenguatge multiparadigma que admet orientat a objectes, estructurat, etc. El principal avantatge de Java és que admet programació orientada a objectes (OOP). El programador pot crear classes i objectes. Hi ha quatre pilars en POO. Són l'herència, el polimorfisme, l'abstracció i l'encapsulació. L'herència i les interfícies estan relacionades amb la POO. La diferència clau entre l'herència i la interfície és que l'herència és derivar noves classes de classes existents i una interfície és implementar classes abstractes i herència múltiple.

Què és l'herència a Java?

L'herència pot aconseguir la reutilització del codi. L'herència ajuda a reutilitzar els atributs i mètodes d'una classe existent. El mecanisme per obtenir una nova classe utilitzant classe antiga s'anomena herència. La classe antiga es coneix com a classe pare o superclasse. La classe derivada s'anomena classe o subclasse fill.

La sintaxi de l'herència de Java és la següent.

class subclass_name amplia el superclass_name {

declaració variable;

declaració del mètode;

}

El concepte d'herència es pot explicar amb l'exemple següent. Suposem que hi ha una classe anomenada A de la següent manera.

classe pública A{

suma pública nul(){

System.out.println(“Suma”);

}

}

Si volem afegir un mètode nou sense canviar la classe existent, ho podem fer de la següent manera.

classe pública B{

public void sub(){

System.out.println(“Sub”);

}

}

El programador pot utilitzar l'herència per utilitzar la classe A sum().

la classe pública B amplia la classe A{

public void sub(){

System.out.println(“Sub”);

}

}

A la funció principal, és possible crear un objecte de B i cridar a sub(), que pertany a la classe B i sum(), que pertany a la classe A mitjançant l'herència.

public static void main(String args){

B obj=nou B();

obj.sub();

obj.sum();

}

Hi ha diferents tipus d'herència. Són herència única, herència múltiple, herència multinivell i herència jeràrquica. En l'herència única, hi ha una classe base i una classe derivada. En l'herència multinivell, hi ha tres classes, a saber, classe base, classe intermèdia i classe derivada. La classe intermèdia hereta de la classe base i la classe derivada hereta de la classe intermèdia. En l'herència jeràrquica, hi ha una classe base i moltes classes derivades. Hi ha un tipus especial conegut com a herència híbrida. És una combinació de dos o més tipus d'herència.

Diferència entre l'herència i la interfície a Java
Diferència entre l'herència i la interfície a Java

Figura 01: Herència

A l'herència múltiple hi ha moltes classes base i una classe derivada. Suposem que les classes A i B són les classes base. La classe C és la classe derivada. Si les classes A i B tenen el mateix mètode i el programador crida aquest mètode des de la classe derivada, provocarà un problema d'ambigüitat. L'herència de dues classes pot provocar un error en temps de compilació. Per tant, l'herència múltiple no s'admet a Java. Es pot utilitzar una interfície per solucionar aquest problema.

Què és la interfície a Java?

L'abstracció és un procés d'amagar els detalls de la implementació i mostrar només les funcionalitats a l'usuari. L'abstracció es pot aconseguir mitjançant classes o interfícies abstractes. Un mètode abstracte és un mètode sense implementació. Una classe amb almenys un mètode abstracte és una classe abstracta. L'exemple d'una classe abstracta és el següent.

classe abstracta A{

abstract void sum();

}

Suposem que hi ha dues classes abstractes com A i B. Per implementar mètodes abstractes d'A i B, es crea una nova classe C. Aleshores, la classe C hauria d'estendre tant A com B, però l'herència múltiple no s'admet a Java. Per tant, cal utilitzar interfícies. Les interfícies es poden utilitzar per declarar mètodes, però no és possible definir mètodes. No és possible crear un objecte mitjançant interfícies. La classe C hauria d'implementar tots els mètodes a la interfície A i B.

interfície A{

void sum();

}

interfície B{

void sub();

}

implements de classe C A, B{

suma pública nul(){

System.out.println(“Suma”);

}

public void sub(){

System.out.println(“Resta”);

}

}

Ara, al programa principal és possible crear un objecte de C i cridar els dos mètodes.

public static void main (String arguments) {

C obj=nova C();

obj.sum();

obj.sub();

}

Així, les interfícies es poden utilitzar per implementar l'herència múltiple.

Un altre ús de les interfícies és que ofereix seguretat. Consulteu el codi següent.

interfície A {

void suma ();

}

implements de classe B A {

suma pública nul () {

System.out.println(“Suma”);

}

public void multiplicar () {

System.out.println(“Multiplicació”);

}

}

Quan es crea un objecte de B, és possible cridar els dos mètodes sum () i multiplicar (). Si el programador vol restringir l'ús de la funció multiplicar (), és possible de la següent manera.

public static void main(String args){

A obj=nou B();

obj.sum();

}

A obj=nou B(); crearà un objecte. És de tipus A i la memòria està assignada com a B. És possible cridar a sum() però no pot executar multiplicar(). Aquesta restricció es fa mitjançant interfícies.

Quines són les similituds entre l'herència i la interfície a Java?

  • Ambdós conceptes estan relacionats amb la programació orientada a objectes
  • Tots dos representen una relació IS-A.

Quina diferència hi ha entre l'herència i la interfície a Java?

Herència vs interfície a Java

L'herència és un concepte de POO per obtenir noves classes de les classes existents. La interfície és un mecanisme en POO per implementar l'abstracció i l'herència múltiple.
Ús
L'herència proporciona la reutilització del codi. Les interfícies proporcionen abstracció i herència múltiple.

Resum: herència vs interfície a Java

Java és un llenguatge de programació multiparadigma que admet programació orientada a objectes. L'herència i les interfícies estan relacionades amb la programació orientada a objectes. La diferència entre l'herència i la interfície és que l'herència és derivar noves classes de classes existents i les interfícies és implementar classes abstractes i herència múltiple.

Descarregueu la versió PDF de l'herència vs la interfície a Java

Podeu baixar la versió PDF d'aquest article i utilitzar-la per a finalitats fora de línia segons la nota de citació. Si us plau, descarregueu la versió PDF aquí Diferència entre l'herència i la interfície a Java

Recomanat: