Diferencia entre la herencia y la interfaz en Java

Diferencia entre la herencia y la interfaz en Java

Diferencia clave: herencia VS Interfaz en Java
 

Java es un lenguaje de programación desarrollado por Sun Microsystems. Java se puede utilizar para desarrollar varias aplicaciones. Es un lenguaje multiparadigma que admite objetos orientados a objetos, 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 OOP. El diferencia clave entre la herencia y la interfaz es que La herencia es derivar nuevas clases de las clases existentes y una interfaz es implementar clases abstractas y herencia múltiple.

CONTENIDO

1. Descripción general y diferencia de claves
2. Qué es la herencia en java
3. ¿Qué es la interfaz en Java?
4. Similitudes entre la herencia y la interfaz en Java
5. Comparación lado a lado: herencia vs interfaz en Java en forma tabular
6. Resumen

Qué es la herencia en java?

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

La sintaxis de la herencia de Java es la siguiente.

clase subclass_name extiende superclass_name

declaración variable;

Declaración del método;

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

Clase pública A

public void sum ()

Sistema.afuera.println ("suma");

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 ()

Sistema.afuera.println ("sub");

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

La clase pública B extiende la Clase A

public void sub ()

Sistema.afuera.println ("sub");

En la función principal, es posible crear un objeto de B y llamar 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.suma();

Hay diferentes tipos de herencia. Son una herencia única, herencia múltiple, herencia multinivel y herencia jerárquica. En herencia única, hay una clase base y una clase derivada. En herencia múltiple, 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. Suponga 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 de la clase derivada, causará un problema de ambigüedad. Heredar dos clases puede causar un error de tiempo de compilación. Por lo tanto, la herencia múltiple no es compatible en Java.  Se puede usar una interfaz para superar ese problema.

¿Qué es la interfaz en Java??

La abstracción es un proceso de ocultar los detalles de implementación y mostrar solo las funcionalidades al usuario. La abstracción se puede lograr utilizando clases o interfaces abstractas. 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. El ejemplo de una clase abstracta es el siguiente.

Clase abstracta A

resumen void sum ();

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

interfaz a

sin suma ();

interfaz b

void sub ();

La clase C implementa A, B

public void sum ()

Sistema.afuera.println ("suma");

public void sub ()

Sistema.afuera.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 = new C ();

obj.suma();

obj.sub();

Por lo tanto, las interfaces pueden usarse para implementar múltiples herencias.

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

interfaz a

sin suma ();

La clase B implementa un

public void sum ()

Sistema.afuera.println ("suma");

public void multiply ()

Sistema.afuera.println ("multiplicación");

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

public static void main (string [] args)

A obj = nuevo B ();

obj.suma();

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 Multiply (). Esta restricción se realiza utilizando interfaces.

¿Cuáles son las similitudes entre la herencia y la interfaz en Java??

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

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

Interfaz de herencia vs 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 la reutilización del código. Las interfaces proporcionan abstracción y herencia múltiple.

Resumen -Herencia VS Interfaz en Java

Java es un lenguaje de programación multiparadigma que admite la 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 clases e interfaces existentes es implementar clases abstractas y herencia múltiple.

Descargue la versión PDF de Inheritance VS Interface en Java

Puede descargar la versión PDF de este artículo y usarla para fines fuera de línea según la nota de cita. Descargue la versión pdf aquí diferencia entre la herencia y la interfaz en Java

Referencia:

1.Punto, tutoriales. "Herencia de Java.", Tutorials Point, 31 de octubre. 2017. Disponible aquí 
2.Punto, tutoriales. "Interfaces Java.", Tutorials Point, 31 de octubre. 2017. Disponible aquí 

Imagen de cortesía:

1.'CPT-OOP-Heritancia-bicicletas' por PLUKE-Trabajo propio, (dominio público) a través de Commons Wikimedia