자바 추상 류 와 인터페이스 차이 에 대한 상세 한 설명

많은 흔히 볼 수 있 는 면접 문 제 는 추상 류 와 인터페이스 가 어떤 차이 가 있 는 지,어떤 상황 에서 추상 류 를 사용 하 는 지,어떤 상황 에서 인 터 페 이 스 를 사용 하 는 지 등 문 제 를 낸다.본문 에서 우 리 는 이 화제 들 을 자세하게 토론 할 것 이다.
그들 사이 의 차이 점 을 토론 하기 전에 우 리 는 먼저 추상 류,인터페이스 각자 의 특성 을 살 펴 보 자.
추상 류
추상 류 는 하위 류 의 통용 특성 을 포착 하 는 데 쓰 인 다.그것 은 실례 화 되 어 서 는 안 되 고,하위 클래스 의 초 류 로 만 사용 된다.추상 류 는 계승 계층 의 하위 클래스 를 만 드 는 데 사용 되 는 템 플 릿 입 니 다.JDK 의 GenericServlet 을 예 로 들 면:

public abstract class GenericServlet implements Servlet, ServletConfig, Serializable {
  // abstract method
  abstract void service(ServletRequest req, ServletResponse res);
 
  void init() {
    // Its implementation
  }
  // other method related to Servlet
}
HttpServlet 클래스 가 GenericServlet 을 계승 할 때 서비스 방법의 실현 을 제공 합 니 다.

public class HttpServlet extends GenericServlet {
  void service(ServletRequest req, ServletResponse res) {
    // implementation
  }
 
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
    // Implementation
  }
 
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
    // Implementation
  }
 
  // some other methods related to HttpServlet
}
인터페이스
인 터 페 이 스 는 추상 적 인 방법의 집합 이다.만약 한 종류 가 어떤 인 터 페 이 스 를 실현 한다 면,그것 은 이 인터페이스의 추상 적 인 방법 을 계승 할 것 이다.계약 모델 처럼 이 인 터 페 이 스 를 실현 했다 면 이 방법 을 사용 해 야 한다.인 터 페 이 스 는 하나의 형식 일 뿐 인터페이스 자체 가 아무것도 할 수 없다.Externalizable 인 터 페 이 스 를 예 로 들 면:

public interface Externalizable extends Serializable {
  void writeExternal(ObjectOutput out) throws IOException;
 
  void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
}
당신 이 이 인 터 페 이 스 를 실현 할 때,당신 은 위의 두 가지 방법 을 실현 해 야 합 니 다.

public class Employee implements Externalizable {
 
  int employeeId;
  String employeeName;
 
  @Override
  public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
    employeeId = in.readInt();
    employeeName = (String) in.readObject();
 
  }
  @Override
  public void writeExternal(ObjectOutput out) throws IOException {
 
    out.writeInt(employeeId);
    out.writeObject(employeeName);
  }
}
추상 류 와 인터페이스의 대비

추상 류 와 인 터 페 이 스 를 언제 사용 합 니까?
4.567917.만약 에 방법 을 가지 고 그들 중 일 부 를 기본 적 으로 실현 시 키 려 면 추상 류 를 사용 하 세 요4.567917.다 중 계승 을 실현 하려 면 인 터 페 이 스 를 사용 해 야 한다.자바 가 다 중 계승 을 지원 하지 않 기 때문에 하위 클래스 는 여러 종 류 를 계승 할 수 없 지만 여러 인 터 페 이 스 를 실현 할 수 있 습 니 다.그래서 너 는 인터페이스 로 그것 을 해결 할 수 있다4.567917.기본 기능 이 계속 바 뀌 고 있다 면 추상 류 를 사용 해 야 한다.기본 기능 을 계속 바 꾸 고 인 터 페 이 스 를 사용한다 면 이 인 터 페 이 스 를 실현 하 는 모든 종 류 를 바 꿔 야 한다이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기