[java] Java Jersey에서 인터페이스와 추상 클래스의 차이점은?
인터페이스(Interface)
- 인터페이스는 클래스가 어떤 메서드를 구현해야 하는지를 정의하는 틀입니다.
- 인터페이스는 메서드의 시그니처(이름, 매개변수, 반환 값)만 정의하고, 구현은 하지 않습니다.
- 클래스는 인터페이스를 구현(implements)함으로써 인터페이스에 정의된 모든 메서드를 구현해야 합니다.
- 인터페이스는 다중 상속을 지원하며, 여러 인터페이스를 구현할 수 있습니다.
- 인터페이스는 인스턴스화 될 수 없으며, 변수로 선언할 수는 있지만 값을 할당할 수 없습니다.
public interface MyInterface {
void myMethod();
}
추상 클래스(Abstract Class)
- 추상 클래스는 일부 메서드의 구현을 제공하고 다른 메서드는 서브클래스에서 구현하도록 하는 클래스입니다.
- 추상 클래스는 abstract 키워드를 사용하여 선언됩니다.
- 추상 클래스는 일반적으로 추상 메서드와 일반 메서드를 모두 포함할 수 있습니다.
- 추상 클래스는 인스턴스화 될 수 없으며, 상속을 통해 서브클래스를 만들어 사용합니다.
public abstract class MyAbstractClass {
public void abstractMethod(); // 추상 메서드
public void normalMethod() {
// 일반 메서드 구현
}
}
결론
인터페이스는 클래스가 따라야 할 규약을 정의하고 다중 상속을 지원합니다. 추상 클래스는 일부 구현을 제공하고 서브클래스가 나머지를 구현하도록 하는 클래스입니다. 프로젝트의 요구 사항에 맞게 인터페이스와 추상 클래스 중 적합한 것을 선택하여 사용해야 합니다.
더 자세한 내용은 다음 참조를 참고하세요: