CodeGym /Blog Java /Aleatoriu /Implementări în Java
John Squirrels
Nivel
San Francisco

Implementări în Java

Publicat în grup
Când unii vorbesc despre paradigma Java OOP a moștenirii, de obicei înseamnă extinderea unei clase părinte cu un moștenitor, o clasă copil. Cu toate acestea, când întâlniți cuvântul cheie Java implements, înseamnă că trecem la un alt nivel de abstractizare și începem să lucrăm cu Interfețele în Java. Vom vorbi despre ce sunt interfețele, pentru ce sunt acestea, cum se întâmplă implementarea.

Ce este interfața și implementarea

Probabil ați auzit de multe ori cuvântul „interfață”. De exemplu, un computer are o interfață de intrare (mouse și tastatură), multe programe au interfețe de utilizator. În sensul cel mai larg, o interfață este o legătură între două părți care interacționează. De exemplu, aceeași tastatură sau telecomandă TV. În programare, și în Java în special, o interfață este un contract specific care spune ce va face clasa care o implementează. O interfață definește doar comportamentul. Nu spune nimic despre obiectul care îl va implementa. Puteți declara o interfață în Java astfel:

public interface MyInterface  {

     // constants declaration 
     // methods without implementation
     // static methods
     // default methods (default)
     // private methods
}
Iată o sintaxă a implementelor în Java:

public class MyClass implements MyInterface{
//implementing the methods of MyInterface 
//Other code
} 
O interfață descrie comportamentul fără a-l specifica. De exemplu, un comportament precum „mișcarea” poate fi aplicat diferitelor tipuri de obiecte: o bicicletă, o persoană, o mașină, apă într-un râu și așa mai departe. Comportamentul înotului poate fi comportamentul unei rațe, al unei nave sau al unui pește. Aceste obiecte nu au nimic în comun în afară de faptul că se pot mișca sau înota. Da, și chiar mișcarea cu înotul sunt foarte diferite. Cu toate acestea, în Java puteți crea cursuri Duck , Boat , Fish și le puteți pune în aplicare abilitatea de a înota. Aici este folosit cuvântul cheie Java Implements .

Exemplu de implementare a cuvântului cheie


public interface Swimmable {
  
   void moveForward();
   void TurnRight();
   void TurnLeft();
  
}
După cum puteți vedea, metodele în sine nu sunt implementate. Dar am declarat că clasele care implementează această interfață trebuie să fie capabile să înoate în linie dreaptă, precum și să vireze la dreapta și la stânga. Să creăm clase care vor implementa această interfață.

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...");
   }
}
Toate clasele care implementează interfața Swimmable , conform contractului, trebuie să fie capabile să înoate înainte (implementează metoda moveForward() ), precum și să vireze la dreapta și la stânga. Este necesară implementarea acestor metode. O rață și un pește înoată diferit. Să presupunem că un pește are două metode suplimentare care implementează capacitatea sa de a înota în sus și în jos. Interfața Swimmable nu are acest lucru. Totuși, dacă creăm un copil din clasa Pește, de exemplu, Ton sau Somon, ei, ca orice „Pește”, vor putea înota în sus și în jos.

Interfețe multiple în Java

După cum probabil știți deja, Java nu acceptă moștenirea multiplă. Asta înseamnă că o clasă poate fi moștenită doar de la o superclasă. Totuși, într-un fel, puteți folosi „moștenirea multiplă” în Java, deoarece o clasă poate implementa mai multe interfețe.

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

Exemplu de interfețe multiple

Amintiți-vă că o rață nu poate doar să înoate, ci și să zboare. Să scriem interfața de zbor și să o implementăm în rata noastră.

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

}
Și din nou, este important să ne amintim de ce scriem interfața. Să spunem că dacă este implementat de o pasăre, un avion, un parașutist și o păpădie, zborurile lor vor fi complet diferite.
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION