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


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

  • 2016년 01월 19일에 작성됨

조회수 393


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

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

.

  • 2016년 01월 19일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close