프로그래밍 언어/JAVA

JAVA Implements vs extends 차이점과 사용시기

Rateye 2021. 12. 29. 10:51
728x90
반응형
질문 : 구현 vs 확장 : 언제 사용합니까? 차이점이 뭐야?

이해하기 쉬운 언어 또는 일부 기사 링크로 설명하십시오.

답변

extends 는 클래스를 확장 하기위한 것입니다.

implements 은 인터페이스 를 구현하기위한 것입니다.

인터페이스와 일반 클래스의 차이점은 인터페이스에서 선언 된 메서드를 구현할 수 없다는 것입니다. 인터페이스를 "구현"하는 클래스 만이 메소드를 구현할 수 있습니다. 인터페이스에 해당하는 C ++는 추상 클래스입니다 (정확히 동일하지는 않지만 거의).

또한 Java는 클래스에 대한 다중 상속을 지원하지 않습니다. 이것은 여러 인터페이스를 사용하여 해결됩니다.

 public interface ExampleInterface {
    public void doAction();
    public String doThis(int number);
 }

 public class sub implements ExampleInterface {
     public void doAction() {
       //specify what must happen
     }

     public String doThis(int number) {
       //specfiy what must happen
     }
 }

이제 클래스 확장

 public class SuperClass {
    public int getNb() {
         //specify what must happen
        return 1;
     }

     public int getNb2() {
         //specify what must happen
        return 2;
     }
 }

 public class SubClass extends SuperClass {
      //you can override the implementation
      @Override
      public int getNb2() {
        return 3;
     }
 }

이 경우

  Subclass s = new SubClass();
  s.getNb(); //returns 1
  s.getNb2(); //returns 3

  SuperClass sup = new SuperClass();
  sup.getNb(); //returns 1
  sup.getNb2(); //returns 2

또한 @Override 태그가 필요하지 않습니다. 원래 인터페이스 메서드 에는 재정의 할 것이 없기 때문입니다.

동적 바인딩, 다형성 및 객체 지향 프로그래밍의 일반적인 상속에 대해 더 많은 연구를 수행하는 것이 좋습니다.

출처 : https://stackoverflow.com/questions/10839131/implements-vs-extends-when-to-use-whats-the-difference
728x90
반응형