Diferença entre Extensões e Implementos em Java com Exemplos

Após o artigo do Java Autoboxing e Unboxing em Java, vamos aprender a diferença entre extensões e implementos em java. Ambas são as palavras-chave reservadas em Java que usamos para herdar as características de um bloco pai já existente no bloco filho recém-criado. Elas são utilizadas para implementar diferentes conceitos em Java. Vamos aprender o que é Java extends keyword e o que é Java implements keyword com exemplos.

Primeiro, vamos rever o conceito de Java Autoboxing e Unboxing em detalhes com Techvidvan.

Mantendo-o atualizado com as últimas tendências tecnológicas, Join TechVidvan on Telegram

O que é extends in Java?

  • A palavra-chave extends em Java é útil quando queremos herdar as propriedades e métodos de uma classe pai na nossa classe filho.
  • Esta palavra-chave extends estabelece a relação de herança entre duas classes.
  • Usamo-la ao criar uma classe derivada da classe pai ou ao criar uma subclasse da superclasse.
  • A regra é que uma classe pode estender um máximo de apenas uma classe.
  • Quando uma classe estende outra classe, ela pode sobrescrever os métodos definidos em uma superclasse.
  • Também usamos a palavra-chave extends quando queremos que uma interface estenda ou herde outra interface.

Conheça o conceito de herança Java em detalhe com Techvidvan.

Código para entender a palavra-chave extends em 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"); }}

Output:

Este é o meu país Índia
Nome da cidade é: Jaipur
Cidade está presente no estado de Rajasthan

O que é Implementos em Java?

  • Usamos a palavra-chave implementos enquanto implementamos uma interface.
  • Uma classe pode implementar uma interface usando a palavra-chave implementos.
  • Uma interface é um tipo abstrato em Java que contém uma coleção de métodos abstratos. Não podemos instanciar uma interface que é, não podemos criar objetos a partir de uma interface.
  • Quando uma classe implementa uma interface, ela tem que definir todos os métodos que estão presentes dentro da interface, fornecendo a implementação de cada um dos métodos.
  • Se a classe que implementa uma interface, não define ou não contém a implementação de todos os métodos da interface, então devemos declará-la como abstrata. Caso contrário, o compilador dará um erro.
  • Java não suporta múltiplas heranças, mas podemos implementar múltiplas heranças em nosso código usando múltiplas interfaces em Java.
  • Uma interface nunca pode implementar outra interface. A razão é que se a interface irá implementar outra interface então ela tem que definir todos os métodos da interface que está implementando mas a interface não pode ter nenhum método concreto, portanto, uma interface não pode implementar outra interface em Java.

Aumentar o seu conhecimento sobre interface Java em detalhes com Techvidvan.

Código para entender a implementação da palavra-chave java implements:

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); }}

Output:

O valor da string é: TechVidvan
O valor inteiro é: 20

Exemplo de Múltiplas Interfaces

Agora veremos um exemplo em que uma classe implementa mais de uma interface ao mesmo tempo e, portanto, estabelece múltiplas heranças em Java. Iremos criar 3 interfaces: Walkable, Swimable e Talkable e uma classe HumanBeing que implementa todas as 3 interfaces.

1. interface: Walkable.java

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

2. interface: Swimmable.java

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

3. interface: Conversível.java

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

4. Classe: 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(); }}

Output:

I can walk
I can swim
I can talk

Diferença entre Extensões e Implementos em Java

Vimos os exemplos de ambas as palavras-chave, vejamos agora java extensões vs implementos em detalhe:

Características de comparação Extensões Implementos
Implementação A palavra-chave extends é usada quando uma classe quer herdar todas as propriedades de outra classe ou de uma interface que quer herdar uma interface. Usamos a palavra-chave implements quando queremos que uma classe implemente uma interface.
Associado a Está associado a Inheritance Está associado a Abstraction
Método A classe filha que estende uma classe pai pode ou não sobrescrever todos os métodos presentes na classe pai. A classe que implementa uma interface deve definir ou fornecer a implementação de todos os métodos declarados na interface, ou então a classe deve ser declarada como abstrata.
Classe Uma subclasse ou mais de uma subclasse pode estender apenas uma classe pai ao mesmo tempo. Uma classe pode implementar uma ou mais interfaces ao mesmo tempo.
Interface Uma interface pode estender qualquer número de interfaces. Uma interface nunca pode implementar qualquer outra interface.

Resumo

Então, em conclusão, chegamos ao final do artigo de diferença entre extensões e implementos em java. Passamos pelas principais diferenças entre estas palavras-chave. Ambas utilizam direta ou indiretamente o conceito de herança em Java. Mas, podemos concluir que implementar uma interface proporciona mais flexibilidade do que estender uma classe, pois podemos estender uma única classe, mas podemos implementar múltiplas heranças em Java. Espero que, depois de ler este artigo, você tenha finalmente entendido a palavra-chave extends vs implements em Java.

Deixe uma resposta

O seu endereço de email não será publicado.