자바 추상 류 와 인터페이스 차이 에 대한 상세 한 설명
그들 사이 의 차이 점 을 토론 하기 전에 우 리 는 먼저 추상 류,인터페이스 각자 의 특성 을 살 펴 보 자.
추상 류
추상 류 는 하위 류 의 통용 특성 을 포착 하 는 데 쓰 인 다.그것 은 실례 화 되 어 서 는 안 되 고,하위 클래스 의 초 류 로 만 사용 된다.추상 류 는 계승 계층 의 하위 클래스 를 만 드 는 데 사용 되 는 템 플 릿 입 니 다.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.기본 기능 이 계속 바 뀌 고 있다 면 추상 류 를 사용 해 야 한다.기본 기능 을 계속 바 꾸 고 인 터 페 이 스 를 사용한다 면 이 인 터 페 이 스 를 실현 하 는 모든 종 류 를 바 꿔 야 한다이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.