Diferencia Entre Herencia E Interfaz En Java

Tabla de contenido:

Diferencia Entre Herencia E Interfaz En Java
Diferencia Entre Herencia E Interfaz En Java

Vídeo: Diferencia Entre Herencia E Interfaz En Java

Vídeo: Diferencia Entre Herencia E Interfaz En Java
Vídeo: Diferencia entre clases abstractas e interfaces en Java 2024, Noviembre
Anonim

Diferencia clave: herencia frente a 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 multi-paradigma que soporta la programación orientada a objetos, estructurada, etc. La principal ventaja de Java es que soporta 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 programación orientada a objetos. La diferencia clave entre herencia e interfaz es que la herencia es derivar nuevas clases de clases existentes y una interfaz es implementar clases abstractas y herencia múltiple.

CONTENIDO

1. Descripción general y diferencia clave

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 frente a 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 la vieja clase se llama herencia. La clase anterior se conoce como clase principal o superclase. La clase derivada se llama clase secundaria o subclase.

La sintaxis de la herencia de Java es la siguiente.

class subclass_name extiende superclass_name {

declaración de variable;

declaración de método;

}

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

clase pública A {

suma vacía pública () {

System.out.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 () {

System.out.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 () {

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 usando herencia.

public static void main (String args) {

B obj = nuevo B ();

obj.sub ();

obj.sum ();

}

Existen diferentes tipos de herencia. Son herencia única, herencia múltiple, herencia multinivel y herencia jerárquica. En herencia única, hay una clase base y una clase derivada. En la 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 la herencia jerárquica, hay una clase base y muchas clases derivadas. Existe un tipo especial conocido como herencia híbrida. Es una combinación de dos o más tipos de herencia.

Diferencia entre herencia e interfaz en Java
Diferencia entre herencia e interfaz en Java

Figura 01: Herencia

En Herencia múltiple hay muchas clases base y una clase derivada. Suponga que las clases 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, se producirá un problema de ambigüedad. Heredar dos clases puede provocar un error en tiempo de compilación. Por tanto, Java no admite la herencia múltiple. Se puede utilizar 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 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 {

suma vacía abstracta ();

}

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 debería extender tanto A como B., pero la herencia múltiple no es compatible con Java. Por tanto, conviene utilizar 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 {

suma vacía ();

}

interfaz B {

void sub ();

}

clase C implementos A, B {

suma vacía pública () {

System.out.println ("Suma");

}

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

}

Entonces, las interfaces se pueden usar para implementar herencia múltiple.

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

interfaz A {

suma vacía ();

}

clase B implementa A {

suma vacía pública () {

System.out.println ("Suma");

}

public void multiplicar () {

System.out.println ("Multiplicación");

}

}

Al crear un objeto de B, es posible llamar a ambos métodos sum () y multiplicar (). 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 se puede ejecutar multiply (). 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 la relación IS-A.

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

Diferencia del medio del artículo antes de la mesa

Herencia vs Interfaz en Java

La herencia es un concepto de programación orientada a objetos 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 de código. Las interfaces proporcionan abstracción y herencia múltiple.

Resumen: herencia frente a interfaz en Java

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

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

Puede descargar la versión PDF de este artículo y utilizarla para fines sin conexión según la nota de cita. Descargue la versión PDF aquí Diferencia entre herencia e interfaz en Java

Recomendado: