Extiende vs Implementa en Java

Rupam Yadav 12 octubre 2023
  1. Heredar una clase usando la palabra clave extends en Java
  2. Heredar una interfaz usando la palabra clave implements en Java
Extiende vs Implementa en Java

Para reutilizar las propiedades y comportamientos de una clase padre determinada en Java, utilizamos el concepto de herencia que es una parte importante de un lenguaje de programación orientado a objetos. La idea detrás de esto es la reutilización del código. Tanto las palabras clave implements como las extends se utilizan para crear una nueva clase en Java que tiene los atributos de la clase padre.

Podemos tener una mejor comprensión de las palabras clave extends e implements utilizando la tabla que se muestra a continuación.

Definición Implementación Clase Interfaz Métodos
extends Cuando una subclase (secundaria) extends una clase base (padre), permite que la subclase herede el código definido en la clase base. Una clase puede heredar otra clase. Una interfaz puede heredar otra interfaz usando la palabra clave extends. Una clase solo puede extender una clase. Una interfaz puede ampliar cualquier número de interfaces. La clase de subclase está extendiendo una clase principal que puede o no anular todos los métodos de la clase base.
implements La palabra clave implements se utiliza para implementar una interfaz. Una interfaz contiene métodos abstractos. El cuerpo del método se define en la clase que lo implementa. Usando la palabra clave implements, una clase puede implementar una interfaz. Una clase puede implementar más de una interfaz. Una interfaz nunca puede implementar ninguna otra interfaz. La clase que implementa una interfaz tiene que implementar todos los métodos en la interfaz.

Heredar una clase usando la palabra clave extends en Java

En el siguiente código, tenemos un Parent, que es la clase base, y un Child como subclase. La clase Child amplía la clase Parent, lo que significa que la clase Child ahora tiene acceso a los campos y métodos definidos dentro de la clase Parent.

En nuestra clase Test, creamos un objeto de la clase de subclase child y llamamos al método displayNumber() sobre él. El método displayString(), que se define dentro de la clase padre, se puede ejecutar llamándolo en el mismo objeto child. Por lo tanto, cumple el propósito de reutilización del código.

public class Test {
  public static void main(String args[]) {
    Child child = new Child();
    System.out.println("Calling Child class method : " + child.displayNumber());
    System.out.println("Calling Parent class method from child : " + child.displayString());
  }
}
class Parent {
  String str = "Hello there!";
  public String displayString() {
    return str;
  }
}
class Child extends Parent {
  int number = 25;
  public int displayNumber() {
    return number;
  }
}

Producción :

Calling Child class method : 25
Calling Parent class method from child : Hello there!

Heredar una interfaz usando la palabra clave implements en Java

Tenemos dos interfaces, Cat y Dog, en el código siguiente, cada una de las cuales contiene un método abstracto. Una clase Animals implementa ambas interfaces, por lo que debe implementar el método definido en las interfaces.

Por tanto, la clase Animals implementó ambas interfaces y definió sus comportamientos, que es el propósito de la interfaz en Java.

interface Cat {
  public void meow();
}

interface Dog {
  public void bark();
}

class Animals implements Dog, Cat {
  @Override
  public void meow() {
    System.out.println("Cat meows");
  }

  @Override
  public void bark() {
    System.out.println("Dog barks");
  }
}
public class Test1 {
  public static void main(String args[]) {
    Animals animals = new Animals();
    animals.bark();
    animals.meow();
  }
}

Producción

Dog barks
Cat meows
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn