Extiende vs Implementa en Java
-
Heredar una clase usando la palabra clave
extends
en Java -
Heredar una interfaz usando la palabra clave
implements
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn