Recomendado, 2024

Escolha Do Editor

Diferença entre estende e implementa palavras-chave em Java

As palavras-chave extends e implementements são usadas para herdar os recursos de um bloco pai já existente no bloco filho recém-criado. Usando a palavra-chave extends, uma classe recém-criada (subclasse) pode herdar os recursos de uma classe existente (superclasse). Usando a palavra-chave implements, uma classe recém-criada pode implementar todos os métodos de uma interface. A principal diferença entre as palavras-chave estende e implementa é que uma classe estende outra classe para herdar todos os seus membros, enquanto uma classe implementa uma interface para herdar todos os métodos e implementá-los de acordo com seus requisitos. Existem algumas outras diferenças entre as palavras-chave estendidas e implementadas discutidas em um gráfico comparativo mostrado abaixo.

Gráficos de Comparação

Base para ComparaçãoEstendeImplementos
BasicA palavra-chave extends é usada para criar uma subclasse usando recursos de uma superclasse.A palavra-chave implements é usada para a implementação de uma interface
MétodosA palavra-chave extends não pode sobrescrever todos os métodos de uma superclasse.A palavra-chave implements deve implementar todos os métodos de uma interface implementada.
ClasseUma turma pode estender apenas uma superclasse.Uma classe pode implementar várias interafaces.
InterfaceUma interface pode estender mais de uma interface.Uma interface não pode implementar outra interface.

Definição de palavra-chave extendida

Herança sendo um conceito importante em Programação Orientada a Objetos, é alcançada quando uma subclasse estende uma outra superclasse. Uma subclasse tem permissão para estender apenas uma superclasse. Uma classe nunca pode estender mais de uma superclasse em Java. Quando uma classe estende outra classe, ela pode substituir os métodos definidos em uma superclasse. Vamos entender que a palavra-chave se estende com a ajuda de um exemplo.

 classe A {String s; A (cadeia de caracteres s1) {s = s1; } // display string void display () {System.out.println (+ s); }} classe B estende A {String i; B (String s1, String i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * display () da classe A invocada. * / System.out.println (+ i); }} class Override {público estático void main (args de seqüência de caracteres []) {B ob = novo B (tecnologia, diferenças); ob.display (); / * exibição da classe B invocada * /}} / * out put * / Tech Differences 

No código acima, você pode observar que a classe B estendeu a classe A e substituiu o método display () definido na classe A. De maneira semelhante, uma interface pode estender mais de uma interface por vez. Como a interface não precisa implementar nenhum método da interface estendida, portanto, é permitido herdar várias interfaces por vez.

Definição de palavra-chave de implementos

Usando a palavra-chave implementa, uma classe herda todos os métodos em uma interface. Quando uma classe implementa uma interface, essa classe tem que implementar todos os métodos da interface implementada. Uma interface nunca pode implementar outra interface, já que implements keyword promete a implementação dos métodos, mas uma interface nunca implementa métodos nela, então é impossível para uma interface implementar outra interface. Vamos entender implements keyword com a ajuda de um exemplo.

 strings de interface {void display (String s); } inteiros de interface {void show (int i); } classe Demo implementa strings, integer {void mostra (int i) {System.Out.Println ("valor inteiro:" + i); } void display (String s) {System.Out.Println ("valor da string:" + s); }} classe Demo_main {public static void main (string args []) {Demo d = nova Demo (); d.display ("TechDifferences"); d.show (2); }} / * output * / TechDifferences 2 

Como no código acima, você pode ver que a demonstração de classe implementa duas strings de interfaces e integer e implementou os métodos declarados em ambas as interfaces que são display () e show ().

Principais diferenças entre extensões e implementos

  1. Uma classe pode herdar outra classe, ou uma interface herda outras interfaces usando uma palavra-chave estendida, enquanto uma classe pode implementar interfaces usando uma palavra-chave implementada.
  2. Uma subclasse que estende uma superclasse pode ou não substituir todos os métodos em uma superclasse. Por outro lado, uma classe que implementa uma interface tem que definir / implementar todos os métodos dessa interface.
  3. Uma classe pode implementar qualquer número de uma interface ao mesmo tempo. Por outro lado, uma turma pode estender apenas uma superclasse.
  4. Uma interface pode estender qualquer número de interfaces, mas uma interface nunca pode implementar qualquer outra interface, já que a implementação de meios que definem os métodos e a interface sempre tem métodos abstratos para que uma interface nunca possa implementar outra interface.

Conclusão:

Concluo a discussão dizendo que implementar uma interface torna o código mais flexível do que estender uma classe. Como evita a restrição de herdar apenas uma superclasse em Java. Usando a palavra-chave implements, uma classe pode herdar recursos de mais de uma interface.

Top