CodeGym /Java Blog /무작위의 /Java로 구현
John Squirrels
레벨 41
San Francisco

Java로 구현

무작위의 그룹에 게시되었습니다
상속의 Java OOP 패러다임에 대해 이야기할 때 일반적으로 부모 클래스를 상속자, 즉 자식 클래스로 확장하는 것을 의미합니다. 그러나 Java implements 키워드를 발견하면 다른 수준의 추상화로 이동하여 Java에서 인터페이스 작업을 시작한다는 의미입니다. 우리는 인터페이스가 무엇인지, 무엇을 위한 것인지, 어떻게 구현되는지에 대해 이야기할 것입니다.

인터페이스 및 구현이란 무엇입니까

"인터페이스"라는 단어를 많이 들어보셨을 것입니다. 예를 들어 컴퓨터에는 입력 인터페이스(마우스 및 키보드)가 있고 많은 프로그램에는 사용자 인터페이스가 있습니다. 가장 넓은 의미에서 인터페이스는 상호 작용하는 두 당사자 간의 링크입니다. 예를 들어 동일한 키보드 또는 TV 리모콘입니다. 프로그래밍, 특히 Java에서 인터페이스는 인터페이스를 구현하는 클래스가 수행할 작업을 지정하는 특정 계약입니다. 인터페이스는 동작만 정의합니다. 그것을 구현할 객체에 대해서는 아무 말도 하지 않습니다. 다음과 같이 Java에서 인터페이스를 선언할 수 있습니다.

public interface MyInterface  {

     // constants declaration 
     // methods without implementation
     // static methods
     // default methods (default)
     // private methods
}
다음은 Java 구현 의 구문입니다 .

public class MyClass implements MyInterface{
//implementing the methods of MyInterface 
//Other code
} 
인터페이스는 지정하지 않고 동작을 설명합니다. 예를 들어 "움직임"과 같은 동작은 자전거, 사람, 자동차, 강의 물 등 다양한 유형의 객체에 적용될 수 있습니다. 헤엄치는 행동은 오리, 배, 물고기의 행동이 될 수 있다. 이 물체들은 움직이거나 헤엄칠 수 있다는 것 외에는 공통점이 없습니다. 예, 수영과의 움직임은 매우 다릅니다. 그러나 Java에서는 Duck , Boat , Fish 클래스를 만들고 수영 기능을 구현하도록 할 수 있습니다. 여기에서 Java 구현 키워드가 사용됩니다.

키워드 예 구현


public interface Swimmable {
  
   void moveForward();
   void TurnRight();
   void TurnLeft();
  
}
보시다시피 메서드 자체는 구현되지 않습니다. 그러나 우리는 이 인터페이스를 구현하는 클래스가 직선으로 헤엄칠 수 있을 뿐만 아니라 오른쪽과 왼쪽으로 회전할 수 있어야 한다고 선언했습니다. 이 인터페이스를 구현할 클래스를 만들어 봅시다.

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...");
   }
}
Swimmable 인터페이스를 구현하는 모든 클래스는 계약에 따라 앞으로 헤엄칠 수 있어야 하고( moveForward() 메서드 구현) 오른쪽과 왼쪽으로 회전할 수 있어야 합니다. 이러한 방법의 구현이 필요합니다. 오리와 물고기는 다르게 헤엄친다. 물고기가 위아래로 헤엄칠 수 있는 기능을 구현하는 두 가지 추가 메서드가 있다고 가정해 보겠습니다. Swimmable 인터페이스에는 이 기능이 없습니다. 그러나 예를 들어 Tuna 또는 Salmon과 같은 Fish 클래스의 자식을 만들면 모든 "Fish"와 마찬가지로 위아래로 헤엄칠 수 있습니다.

Java의 다중 인터페이스

이미 알고 계시겠지만 Java는 다중 상속을 지원하지 않습니다. 즉, 하나의 클래스는 하나의 수퍼클래스에서만 상속될 수 있습니다. 그러나 클래스가 여러 인터페이스를 구현할 수 있기 때문에 어떤 방식으로든 Java에서 "다중 상속"을 사용할 수 있습니다.

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

다중 인터페이스 예

오리는 헤엄칠 수 있을 뿐만 아니라 날 수도 있다는 것을 기억하십시오. 비행 인터페이스를 작성하고 오리에 구현해 봅시다.

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

}
그리고 다시 인터페이스를 작성하는 이유를 기억하는 것이 중요합니다. 예를 들어 새, 비행기, 스카이 다이버, 민들레에 의해 구현된다면 그들의 비행은 완전히 다를 것입니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION