Diferencia entre herencia e interfaz en Java

Java es uno de los lenguajes de programación más populares y ampliamente utilizados. Java ha sido uno de los lenguajes de programación más populares durante muchos años. Java está orientado a objetos . Sin embargo, no se considera puramente orientado a objetos, ya que brinda soporte para tipos de datos primitivos (como int, char, etc.). En este artículo, entenderemos la diferencia entre los dos conceptos más importantes en Java, herencia e interfaz.

Interfaz: Las interfaces son los planos de las clases. Especifican qué debe hacer una clase y no cómo. Al igual que una clase, una interfaz puede tener métodos y variables, pero los métodos declarados en una interfaz son abstractos por defecto (es decir, solo contienen la firma del método y no el cuerpo del método). Las interfaces se utilizan para implementar una abstracción completa .

Herencia: Es un mecanismo en Java por el cual una clase puede heredar las características de otra clase. Hay múltiples herencias posibles en java. Están:

  1. Herencia única: en la herencia única, las subclases heredan las características de una superclase. En la imagen a continuación, la clase A sirve como clase base para la clase B derivada.

  2. Herencia multinivel: en la herencia multinivel, una clase derivada heredará una clase base y, además, la clase derivada también actuará como la clase base para otra clase. En la siguiente imagen, la clase A sirve como clase base para la clase B derivada, que a su vez sirve como clase base para la clase C derivada. En Java, una clase no puede acceder directamente a los miembros de los abuelos.

    Multilevel-inheritance1

  3. Herencia jerárquica: en la herencia jerárquica, una clase sirve como superclase (clase base) para más de una subclase. En la siguiente imagen, la clase A sirve como clase base para las clases derivadas B, C y D.

    Hierarchical-inheritance1

La siguiente tabla describe la diferencia entre la herencia y la interfaz:

Categoría Herencia Interfaz
Descripción La herencia es el mecanismo en java por el cual una clase puede heredar las características de otra clase. La interfaz es el modelo de la clase. Especifica qué debe hacer una clase y no cómo. Al igual que una clase, una interfaz puede tener métodos y variables, pero los métodos declarados en una interfaz son abstractos por defecto (solo firma de método, sin cuerpo).
Usar Se utiliza para obtener las características de otra clase. Se utiliza para proporcionar abstracción total.
Sintaxis clase nombre_subclase extiende nombre_superclase {
}
interfaz <nombre_interfaz>{
}
Número de herencia Se utiliza para proporcionar 4 tipos de herencia. (herencia multinivel, simple, híbrida y jerárquica) Se utiliza para proporcionar 1 tipo de herencia (múltiple).
Palabras clave Utiliza la palabra clave extends. Utiliza la palabra clave implementa.
Herencia Podemos heredar clases menores que Interface si usamos Herencia. Podemos heredar muchísimas más clases que Herencia, si usamos Interfaz.
Definición del método Los métodos se pueden definir dentro de la clase en caso de herencia. Los métodos no se pueden definir dentro de la clase en el caso de la interfaz (excepto mediante el uso de palabras clave estáticas y predeterminadas).
Sobrecarga Sobrecarga el sistema si intentamos extender muchas clases. El sistema no está sobrecargado, no importa cuántas clases implementemos.
Funcionalidad proporcionada No proporciona la funcionalidad de acoplamiento flojo Proporciona la funcionalidad de acoplamiento flojo.
Herencia múltiple No podemos hacer herencia múltiple (causa un error de tiempo de compilación). Podemos hacer herencia múltiple usando interfaces.

Publicación traducida automáticamente

Artículo escrito por supriya_saxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *