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:
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 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 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.