Extensões vs. Implementos em Java

Rupam Yadav 12 outubro 2023
  1. Herdar uma classe usando a palavra-chave extends em Java
  2. Herdar uma interface usando a palavra-chave implements em Java
Extensões vs. Implementos em Java

Para reutilizar as propriedades e comportamentos de uma determinada classe pai em Java, usamos o conceito de herança, que é uma parte importante de uma linguagem de programação orientada a objetos. A ideia por trás disso é a capacidade de reutilização do código. Ambas as palavras-chave implements e extends são usadas para criar uma nova classe em Java que possui os atributos da classe pai.

Podemos ter uma melhor compreensão das palavras-chave extends e implements usando a tabela abaixo.

Definição Implementação Aula Interface Métodos
extends Quando uma subclasse (filha) extends uma classe base (pai), permite que a subclasse herde o código definido na classe base. Uma classe pode herdar outra classe. Uma interface pode herdar outra interface usando a palavra-chave extends. Uma classe pode estender apenas uma classe. Qualquer número de interfaces pode ser estendido por uma interface. A classe subclasse está estendendo uma classe pai pode ou não substituir todos os métodos na classe base.
implements A palavra-chave implements é usada para implementar uma interface. Uma interface contém métodos abstratos. O corpo do método é definido na classe que o implementa. Usando a palavra-chave implements, uma classe pode implementar uma interface. Mais de uma interface pode ser implementada por uma classe. Uma interface nunca pode implementar qualquer outra interface. A classe que implementa uma interface deve implementar todos os métodos da interface.

Herdar uma classe usando a palavra-chave extends em Java

No código abaixo, temos um Parent, que é a classe base, e Child como a subclasse. A classe Child estende a classe Parent, o que significa que a classe Child agora tem acesso aos campos e métodos definidos dentro da classe Parent.

Em nossa classe Test, criamos um objeto da classe subclasse child e chamamos o método displayNumber() nele. O método displayString(), que é definido dentro da classe pai, pode ser executado chamando-o no mesmo objeto child. Conseqüentemente, ele cumpre o propósito de reutilização de 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;
  }
}

Resultado:

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

Herdar uma interface usando a palavra-chave implements em Java

Temos duas interfaces, Cat e Dog, no código abaixo, cada uma contendo um método abstrato dentro dela. Uma classe Animals implementa ambas as interfaces, por isso deve implementar o método definido nas interfaces.

Portanto, a classe Animals implementou ambas as interfaces e definiu seus comportamentos, que é o propósito da interface em 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();
  }
}

Resultado

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