implements와 Extends의 차이점이 뭐고 각각 언제 쓰는건가요?

implements와 Extends의 차이점이 뭐고 각각 언제 쓰는건가요? 기본적인 질문인데 이 두개의 차이를 잘 모르겠어요. 이해하기 쉽게 설명좀 해주세요.

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    extends는 클래스를 확장하는 거고 implements는 인터페이스를 구현하는 것입니다.

    인터페이스와 보통 클래스의 차이는 인터페이스는 정의한 메소드를 구현하지 않아도 됩니다. 인터페이스를 상속받는 클래스에서 인터페이스에 정의된 메소드를 구현하면 됩니다.

    C++에서는 다중상속을 허용하지만 자바에서는 다중상속을 지원하지 않습니다. 그래서 그 대안으로 인터페이스를 제공하는 것입니다.

    public interface ExampleInterface{
        public void do();
        public String doThis(int number);
     }
     public class sub implements ExampleInterface{
         public void do(){
           //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
    

    한번 동적바인딩과 다형성에 관한 자료를 찾아보시는걸 추천합니다

    .

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.