implements와 Extends의 차이점이 뭐고 각각 언제 쓰는건가요?
조회수 22207회
1 답변
-
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
한번 동적바인딩과 다형성에 관한 자료를 찾아보시는걸 추천합니다
.
댓글 입력