프로그래밍 언어/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
반응형