Diferencia entre Extends e Implements en Java con Ejemplos

Después del artículo de Autoboxing y Unboxing en Java, vamos a aprender la diferencia entre extends e implements en java. Ambos son las palabras clave reservadas en Java que utilizamos para heredar las características de un bloque padre ya existente en el bloque hijo recién creado. Se utilizan para implementar diferentes conceptos en Java. Aprenderemos qué es la palabra clave Java extends y qué es la palabra clave Java implements con ejemplos.

Primero, revisemos el concepto de Java Autoboxing y Unboxing en detalle con Techvidvan.

Manteniéndote actualizado con las últimas tendencias tecnológicas, Únete a TechVidvan en Telegram

¿Qué es extends en Java?

  • La palabra clave extends en Java es útil cuando queremos heredar las propiedades y métodos de una clase padre en nuestra clase hija.
  • Esta palabra clave extends establece la relación de herencia entre dos clases.
  • La utilizamos al crear una clase derivada de la clase padre o al crear una subclase de la superclase.
  • La regla es que una clase puede extender un máximo de una sola clase.
  • Cuando una clase extiende otra clase, puede sobrescribir los métodos definidos en una superclase.
  • También utilizamos la palabra clave extends cuando queremos que una interfaz extienda o herede otra interfaz.

Familiarízate con el concepto de Herencia de Java en detalle con Techvidvan.

Código para entender la palabra clave extends en Java:

package com.techvidvan.extendsvsimplements;//Parent classclass Country{ String name = "India"; public void display() { System.out.println("This is my country India"); }}//child class extends the parent classclass City extends Country{ // defining additional properties to the derived class String state = "Rajasthan"; String city = "Jaipur";}public class ExtendsDemo{ public static void main(String args) { City obj=new City(); obj.display(); System.out.println("Name of the city is: " + obj.name); System.out.println("City is present in " + obj.state + "state"); }}

Salida:

Este es mi país India
Nombre de la ciudad es: Jaipur
La ciudad está presente en el estado de Rajasthan

¿Qué es Implements en Java?

  • Usamos la palabra clave implements mientras implementamos una interfaz.
  • Una clase puede implementar una interfaz usando la palabra clave implements.
  • Una interfaz es un tipo abstracto en Java que contiene una colección de métodos abstractos. No podemos instanciar una interfaz, es decir, no podemos crear objetos a partir de una interfaz.
  • Cuando una clase implementa una interfaz, tiene que definir todos los métodos que están presentes dentro de la interfaz proporcionando la implementación de cada uno de los métodos.
  • Si la clase que implementa una interfaz, no define o no contiene la implementación de todos los métodos de la interfaz, entonces debemos declararla como abstracta. De lo contrario, el compilador dará un error.
  • Java no soporta herencias múltiples, pero podemos implementar la herencia múltiple en nuestro código utilizando múltiples interfaces en Java.
  • Una interfaz nunca puede implementar otra interfaz. La razón es que si la interfaz implementará otra interfaz, entonces tiene que definir todos los métodos de la interfaz que está implementando, pero la interfaz no puede tener ningún método concreto, por lo tanto, una interfaz no puede implementar otra interfaz en Java.

Aumenta tus conocimientos sobre la interfaz de Java en detalle con Techvidvan.

Código para entender la implementación de java implementa la palabra clave:

package com.techvidvan.extendsvsimplements;//Creating an interfaceinterface MyInterface{ //Declaring abstract methods inside it void displayString(String s); void showNumber(int i);}//Implementing the interface using the implements keywordpublic class MyClass implements MyInterface{ //Implementing all the methods declared in the interface public void displayString(String s) { System.out.println("The string value is: " +s); } public void showNumber(int i) { System.out.println("The integer value is: " +i); } public static void main(String args) { MyClass obj = new MyClass(); obj.displayString("TechVidvan"); obj.showNumber(20); }}

Salida:

El valor de la cadena es: TechVidvan
El valor entero es: 20

Ejemplo de Múltiples Interfaces

Ahora veremos un ejemplo en el que una clase implementa más de una interfaz al mismo tiempo y por tanto establece múltiples herencias en Java. Crearemos 3 interfaces: Walkable, Swimmable y Talkable y una clase HumanBeing que implementa las 3 interfaces.

1. interfaz: Walkable.java

package com.techvidvan.extendsvsimplements;public interface Walkable { public void walk();}

2. interfaz: Swimmable.java

package com.techvidvan.extendsvsimplements;public interface Swimmable{ public void swim();}

3. interfaz: Talkable.java

package com.techvidvan.extendsvsimplements;public interface Talkable { public void talk();}

4. Class: HumanBeing.java

package com.techvidvan.extendsvsimplements;\To implement multiple interfaces we must use commas to separate thempublic class HumanBeing implements Walkable, Swimmable, Talkable{ @Override public void walk() { System.out.println("I can walk"); } @Override public void swim() { System.out.println("I can swim"); } @Override public void talk() { System.out.println("I can talk"); } public static void main(String args) { HumanBeing human= new HumanBeing(); human.walk(); human.swim(); human.talk(); }}

Salida:

Puedo caminar
Puedo nadar
Puedo hablar

Diferencia entre Extends e Implements en Java

Hemos visto los ejemplos de ambas palabras clave, veamos ahora java extends vs implements en detalle:

Características de la comparación Extends Implements
Implementación La palabra clave extends se utiliza cuando una clase quiere heredar todas las propiedades de otra clase o una interfaz que quiere heredar una interfaz. Se utiliza la palabra clave implements cuando queremos que una clase implemente una interfaz.
Se asocia con Se asocia con Inheritance Se asocia con Abstraction
Method La clase hija que extiende una clase padre puede o no anular todos los métodos presentes en la clase padre. La clase que implementa una interfaz debe definir o proporcionar la implementación de todos los métodos declarados en la interfaz, o bien la clase debe ser declarada como abstracta.
Clase Una subclase o más de una subclase puede extender sólo una clase padre al mismo tiempo. Una clase puede implementar una o más de una interfaz al mismo tiempo.
Interfaz Una interfaz puede extender cualquier número de interfaces. Una interfaz nunca puede implementar otra interfaz.

Summary

Así que en conclusión, llegamos al final del artículo de diferencia entre extends e implements en java. Repasamos las principales diferencias entre estas palabras clave. Ambas utilizan directa o indirectamente el concepto de herencia en Java. Pero, podemos concluir que la implementación de una interfaz proporciona más flexibilidad que extender una clase, ya que podemos extender una sola clase, pero podemos implementar múltiples herencias en Java. Espero que, después de leer este artículo, usted podría haber entendido finalmente extiende vs implementa palabra clave en Java.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.