CodeGym /Blogue Java /Random-PT /Implementações em Java
John Squirrels
Nível 41
San Francisco

Implementações em Java

Publicado no grupo Random-PT
Quando alguns falam sobre o paradigma Java OOP de herança, geralmente se referem à extensão de uma classe pai com um herdeiro, uma classe filha. No entanto, quando você se depara com a palavra-chave Java implements, significa que passamos para outro nível de abstração e começamos a trabalhar com Interfaces em Java. Vamos falar sobre o que são interfaces, para que servem, como acontece a implementação.

O que é interface e implementação

Você provavelmente já ouviu a palavra “interface” muitas vezes. Por exemplo, um computador possui uma interface de entrada (mouse e teclado), muitos programas possuem interfaces de usuário. No sentido mais amplo, uma interface é um elo entre duas partes que interagem. Por exemplo, o mesmo teclado ou controle remoto da TV. Na programação, e em Java em particular, uma interface é um contrato específico que diz o que a classe que a implementa fará. Uma interface apenas define o comportamento. Não diz nada sobre o objeto que irá implementá-lo. Você pode declarar uma interface em Java assim:

public interface MyInterface  {

     // constants declaration 
     // methods without implementation
     // static methods
     // default methods (default)
     // private methods
}
Aqui está uma sintaxe de Implements em Java:

public class MyClass implements MyInterface{
//implementing the methods of MyInterface 
//Other code
} 
Uma interface descreve o comportamento sem especificá-lo. Por exemplo, um comportamento como "movimento" pode ser aplicado a diferentes tipos de objetos: uma bicicleta, uma pessoa, um carro, água em um rio e assim por diante. O comportamento de nadar pode ser o comportamento de um pato, de um navio ou de um peixe. Esses objetos não têm nada em comum, exceto que podem se mover ou nadar. Sim, e o próprio movimento com a natação são muito diferentes. No entanto, em Java, você pode criar as classes Duck , Boat , Fish e deixá-las implementar a capacidade de nadar. É aqui que a palavra-chave Java Implements é usada.

Implementar exemplo de palavra-chave


public interface Swimmable {
  
   void moveForward();
   void TurnRight();
   void TurnLeft();
  
}
Como você pode ver, os próprios métodos não são implementados. Mas declaramos que as classes que implementam essa interface devem ser capazes de nadar em linha reta, bem como virar à direita e à esquerda. Vamos criar classes que irão implementar essa interface.

public class Duck implements Swimmable {
//implementing the methods
   public void moveForward() {
       System.out.println(" Quack, I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft(){
       System.out.println("I am turning left...");

   }

   public void Stop() {
       System.out.println("Quack. I am relaxing on the surface of the water...");
   }

}

public class Fish implements Swimmable {

   public void moveForward() {
       System.out.println("I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft() {
       System.out.println("I am turning left...");
   }

   public void turnUp(){
       System.out.println("I am turning up...");
   }

   public void turnDown(){
       System.out.println("I am turning down...");
   }

   public void Stop() {
       System.out.println("I am relaxing somewhere under the water surface...");
   }
}
Todas as classes que implementam a interface Swimmable , de acordo com o contrato, devem poder nadar para frente (implementar o método moveForward() ), bem como virar à direita e à esquerda. A implementação desses métodos é necessária. Um pato e um peixe nadam de forma diferente. Digamos que um peixe tenha dois métodos adicionais que implementam sua capacidade de nadar para cima e para baixo. A interface Swimmable não tem isso. Porém se criarmos um filho da classe Peixe, por exemplo, Atum ou Salmão, eles, como todo “Peixe”, poderão nadar para cima e para baixo.

Múltiplas Interfaces em Java

Como você provavelmente já sabe, Java não suporta herança múltipla. Isso significa que uma classe pode ser herdada apenas de uma superclasse. No entanto, de certa forma, você ainda pode usar “herança múltipla” em Java, porque uma classe pode implementar várias interfaces.

To implement multiple interfaces, use the next syntax: 
interface MyFirstInterface {
   public void myMethod();
}
interface MySecondInterface {
   public void myOtherMethod();
}

// MyClass implements both MyFirstInterface and MySecondInterface
class MyClass implements MyFirstInterface, MySecondInterface {
   public void myMethod() {
      //method implementation
   }
   public void myOtherMethod() {
     //method implementation
   }
}

Exemplo de Múltiplas Interfaces

Lembre-se de que um pato pode não apenas nadar, mas também voar. Vamos escrever a interface de voo e implementá-la em nosso pato.

public interface Flyable {
   double startAge = 0.1;
   void fly();
}

public class Duck implements Swimmable, Flyable {

   public void moveForward() {
       System.out.println(" Quack, I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft(){
       System.out.println("I am turning left...");

   }

   public void Stop() {
       System.out.println("Quack. I am relaxing on the surface of the water...");
   }

   public void fly(){
       System.out.println("I am flying!!!");
   }

}
E, novamente, é importante lembrar por que estamos escrevendo a interface. Digamos que se for implementado por um pássaro, um avião, um pára-quedista e um dente-de-leão, seus voos serão completamente diferentes.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION