Extensões vs. Implementos em Java
- 
          
            Herdar uma classe usando a palavra-chave extendsem Java
- 
          
            Herdar uma interface usando a palavra-chave implementsem 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) extendsuma 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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn