java abstractclass 인터페이스 간의 차이 소개

abstract 수식자를 포함하는class는 추상적인 클래스입니다. abstract 클래스는 만들 수 없는 실례 대상입니다.abstract 방법을 포함하는 클래스는 반드시 abstractclass로 정의해야 하며, abstractclass 클래스의 방법은 추상적이지 않아도 된다.abstract class 클래스에서 추상적인 방법을 정의하는 것은 구체적인(Concrete) 하위 클래스에서 이루어져야 하기 때문에 추상적인 구조 방법이나 추상적인 정적 방법이 있어서는 안 된다.만약 하위 클래스가 추상적인 상위 클래스의 모든 추상적인 방법을 실현하지 못한다면, 하위 클래스도 abstract 형식으로 정의해야 한다.인터페이스(interface)는 추상류의 특례라고 할 수 있으며, 인터페이스의 모든 방법은 추상적이어야 한다.인터페이스의 방법은 기본값은public abstract 형식이고, 인터페이스의 구성원 변수 형식은publicstaticfinal입니다.다음은 두 사람의 문법 차이를 비교한다.추상류는 구조 방법이 있을 수 있지만 인터페이스에는 구조 방법이 있을 수 없다.2. 추상류에는 일반 구성원 변수가 있고, 인터페이스에는 일반 구성원 변수가 없다.추상류에는 비추상적인 일반적인 방법이 포함될 수 있고 인터페이스의 모든 방법은 반드시 추상적이어야 하며 비추상적인 일반적인 방법이 있어서는 안 된다.4. 추상 클래스의 추상적인 방법의 접근 유형은public,protected와(기본 형식, eclipse에서 오류를 보고하지 않지만 안 될 수도 있음)일 수 있지만 인터페이스의 추상적인 방법은public 형식일 뿐이고 기본은public abstract 형식입니다.5. 추상 클래스에는 정적 방법이 포함될 수 있고, 인터페이스에는 정적 방법이 포함될 수 없다.추상 클래스와 인터페이스에는 정적 구성원 변수가 포함될 수 있습니다. 추상 클래스의 정적 구성원 변수의 접근 형식은 임의로 할 수 있지만 인터페이스에 정의된 변수는publicstaticfinal 형식일 뿐이고 기본적으로publicstaticfinal 형식입니다.7. 하나의 클래스는 여러 개의 인터페이스를 실현할 수 있지만 하나의 추상적인 클래스만 계승할 수 있다.다음은 이어서 두 가지 응용에서의 차이점을 말하자면 인터페이스는 시스템 구조 설계 방법에서 역할을 발휘하고 주로 모듈 간의 통신 계약을 정의하는 데 사용된다.한편, 추상류는 코드 실현에 역할을 발휘하여 코드의 중용을 실현할 수 있다. 예를 들어 템플릿 방법 디자인 모델은 추상류의 전형적인 응용이다. 어떤 프로젝트의 모든 Servlet 클래스가 같은 방식으로 권한 판단, 액세스 로그와 처리 이상을 기록해야 한다고 가정하면 추상적인 클래스를 정의하여 모든 Servlet이 추상적인 클래스를 계승할 수 있다.추상적인 기본 클래스의 서비스 방법에서 권한 판단, 액세스 로그 기록과 이상한 코드 처리를 완성하고 각 하위 클래스에서 각자의 업무 논리 코드만 완성한다. 위조 코드는 다음과 같다
 
public abstract class BaseServlet extends HttpServlet
{
public final void service(HttpServletRequest request, HttpServletResponse response) throws IOExcetion,ServletException
{
//
//
//if( )
{
try
{
doService(request,response);
}
catch(Excetpion e)
{

}
}
}
protected abstract void doService(HttpServletRequest request, HttpServletResponse response) throws IOExcetion,ServletException;
// protected, , ,
}
public class MyServlet1 extends BaseServlet
{
protected void doService(HttpServletRequest request, HttpServletResponse response) throws IOExcetion,ServletException
{
// Servlet
}
}
부류 방법 중의 어떤 단락의 코드가 확실하지 않기 때문에 부류에 남겨 두면 템플릿 방법으로 모델을 설계한다.비고: 이 문제의 사고방식은 먼저 추상류와 인터페이스의 기본 개념을 총체적으로 해석한 다음에 이들의 문법 세부 사항을 비교한 다음에 이들의 응용 차이를 다시 이야기하는 것이다.두 문법의 세부적인 차이를 비교하는 조리는 먼저 하나의 유형 중의 구조 방법, 일반 구성원 변수와 방법(추상적인 방법 포함), 정적 변수와 방법, 계승성 등 6개 방면에서 하나하나 대답을 비교한 다음에 제3자 계승의 측면에서 대답하는 것이다. 특히 마지막으로 전형적인 예를 들어 자신의 깊은 기술적 기반을 보여주었다.

좋은 웹페이지 즐겨찾기