Diferencia entre herencia e interfaz en Java

Diferencia Clave - Herencia Interfaz vs en Java
 

Java es un lenguaje de programación desarrollado por Sun Microsystems. Java se puede utilizar para desarrollar diversas aplicaciones. Es un lenguaje de paradigma múltiple que admite orientado a objetos, estructurado, etc. La principal ventaja de Java es que admite la programación orientada a objetos (OOP). El programador puede crear clases y objetos. Hay cuatro pilares en OOP. Son herencia, polimorfismo, abstracción y encapsulación. La herencia y las interfaces están relacionadas con la POO. los diferencia clave entre la herencia y la interfaz es que herencia es derivar nuevas clases de clases existentes y una interfaz es implementar clases abstractas y herencia múltiple.

CONTENIDO

1. Resumen y diferencia clave
2. Qué es la herencia en java
3. ¿Qué es la interfaz en Java?
4. Similitudes entre herencia e interfaz en Java
5. Comparación lado a lado: herencia frente a la interfaz en Java en forma tabular
6. Resumen

Qué es la herencia en java?

La herencia puede lograr la reutilización del código. La herencia ayuda a reutilizar los atributos y métodos de una clase existente. El mecanismo de derivar una nueva clase usando una clase antigua se llama herencia. La clase antigua se conoce como clase padre o súper clase. La clase derivada se llama clase secundaria o subclase.

La sintaxis de la herencia de Java es la siguiente.

la clase subclass_name extiende superclass_name

declaración de variable

declaración de método;

El concepto de herencia se puede explicar utilizando el siguiente ejemplo. Supongamos que hay una clase llamada A como sigue.

clase pública A

suma vacía pública ()

System.out.println ("Sum");

Si queremos agregar un nuevo método sin cambiar la clase existente, podemos hacerlo de la siguiente manera.

clase pública B

public void sub ()

System.out.println ("Sub");

El programador puede usar la herencia para usar la suma de clase A ().

clase pública B extiende clase A

public void sub ()

System.out.println ("Sub");

En la función principal, es posible crear un objeto de B y llamar a sub (), que pertenece a la clase B y sum (), que pertenece a la clase A utilizando la herencia.

public static void main (String [] args)

B obj = nuevo B ();

obj.sub ();

obj.sum ();

Hay diferentes tipos de herencia. Son herencia simple, herencia múltiple, herencia multinivel y herencia jerárquica. En herencia única, Hay una clase base y una clase derivada. En herencia multinivel, hay tres clases a saber, clase base, clase intermedia y clase derivada. La clase intermedia hereda de la clase base, y la clase derivada hereda de la clase intermedia. En herencia jerárquica, Hay una clase base y muchas clases derivadas. Hay un tipo especial conocido como Herencia híbrida. Es una combinación de dos o más tipos de herencia..

Figura 01: Herencia

En Herencia múltiple Hay muchas clases base y una clase derivada. Supongamos que la clase A y B son las clases base. La clase C es la clase derivada. Si las clases A y B tienen el mismo método y el programador llama a ese método desde la clase derivada, causará un problema de ambigüedad. Heredar dos clases puede causar un error en tiempo de compilación. Por lo tanto, la herencia múltiple no es compatible con Java. Se puede usar una interfaz para superar ese problema.

¿Qué es la interfaz en Java??

La abstracción es un proceso que consiste en ocultar los detalles de la implementación y mostrar solo las funcionalidades al usuario. La abstracción se puede lograr usando clases abstractas o interfaces. Un método abstracto es un método sin una implementación. Una clase con al menos un método abstracto es una clase abstracta. Ejemplo de una clase abstracta es la siguiente.

clase abstracta A

suma vacía abstracta ();

Supongamos que hay dos clases abstractas como A y B. Para implementar los métodos abstractos de A y B, se crea una nueva clase C. Entonces la clase C debería extender tanto A como B. Pero la herencia múltiple no es compatible con Java. Por lo tanto, debe utilizar interfaces. Las interfaces se pueden utilizar para declarar métodos, pero no es posible definir métodos. No es posible crear un objeto utilizando interfaces. La clase C debería implementar todos los métodos en la interfaz A y B.

interfaz A

suma nula ();

interfaz B

void sub ();

la clase C implementa A, B

suma vacía pública ()

System.out.println ("Summation");

public void sub ()

System.out.println ("Resta");

Ahora, en el programa principal es posible crear un objeto de C y llamar a ambos métodos.

public static void main (String [] args)

C obj = nuevo C ();

obj.sum ();

obj.sub ();

Por lo tanto, las interfaces pueden utilizar para implementar herencia múltiple.

Otro uso de las interfaces es que proporciona seguridad. Consulte el siguiente código.

interfaz A

suma nula ();

la clase B implementa A

suma vacía pública ()

System.out.println ("Summation");

público vacío multiplicar ()

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

Al crear un objeto de B, es posible llamar a ambos métodos sum () y multiply (). Si el programador desea restringir el uso de la función multiplicar (), es posible de la siguiente manera.

public static void main (String [] args)

A obj = nuevo B ();

obj.sum ();

A obj = nuevo B (); creará un objeto. Es de tipo A y la memoria se asigna como B. Es posible llamar a sum () pero no puede ejecutar multiplicar (). Esta restricción se realiza mediante interfaces..

Cuáles son las similitudes entre herencia e interfaz en Java?

  • Ambos conceptos están relacionados con la programación orientada a objetos.
  • Ambos representan una relación IS-A.

¿Cuál es la diferencia entre herencia e interfaz en Java??

Herencia vs Interfaz en Java

La herencia es un concepto OOP para derivar nuevas clases de las clases existentes. La interfaz es un mecanismo en OOP para implementar la abstracción y la herencia múltiple.
Uso
La herencia proporciona reutilización del código.. Las interfaces proporcionan abstracción y herencia múltiple..

Resumen - Herencia Interfaz vs en Java

Java es un lenguaje de programación multi-paradigma que soporta programación orientada a objetos. La herencia y las interfaces están relacionadas con la programación orientada a objetos. La diferencia entre la herencia y la interfaz es que la herencia es derivar nuevas clases de las clases e interfaces existentes, es implementar clases abstractas y herencia múltiple.

Descargue la versión PDF de Herencia vs Interfaz en Java

Puede descargar la versión en PDF de este artículo y usarla para fines fuera de línea, como se indica en la nota de cita. Descargue la versión en PDF aquí Diferencia entre herencia e interfaz en Java

Referencia:

1.Point, Tutoriales. "Herencia de Java"., Tutoriales de point, 31 oct. 2017. Disponible aquí 
2.Puntos, Tutoriales. "Interfaces Java". , Punto de tutoriales, 31 de octubre de 2017. Disponible aquí 

Imagen de cortesía:

1.'CPT-OOP-inheritance-bikes 'Por Pluke - Trabajo propio, (Dominio público) a través de Commons Wikimedia