1. Abstract (추상 클래스)

반드시 한 개 이상의 추상 메소드를 가지고, 객체를 생성하지 않는다.

슈퍼 클래스로 사용이 가능하며 추상 메소드가 하나 이상만 있으면 된다. 

 

 

2. Interface (인터페이스)

서로 다른 클래스를 연결시켜주는 연결 장치이다.

슈퍼 클래스의 용도로 사용이 가능하며, 반드시 추상 메소드로만 구현되어야 한다.

 

 

* Class > Abstract > Interface

 

 

3. 차이점

 

 Abstract

Interface 

추상 메소드 유무

1개 이상의 추상 메소드

전부 추상 메소드 

상속 유무

단일 상속만 가능 

다중 상속 가능 

 

 

4. DTO 에서 Interface를 사용하는 이유

프로그램 설계시 클래스의 구조가 1번의 경우일 때에는 A부터 C까지 쭉 상속을 받아 단일 상속으로 가능한 Abstract로 구현하면 되지만, 2번의 경우일 때에는 관련 없는 D 클래스가 있는 경우도 있기 때문에 보통은 Interface를 사용한다.

(2번 같은 경우에는 B를 상속받고 D를 인터페이스로 사용한다)

'BackEnd > Java' 카테고리의 다른 글

Java :: Exception 예외처리  (0) 2016.12.15
Servlet :: ServletContext vs ServletConfig  (0) 2016.11.22
Java :: 간단한 JDBC 예제  (0) 2016.10.18
Java :: 스레드(Thread)  (0) 2016.10.12
Java :: Code vs Heap vs Stack  (0) 2016.10.10

+ Recent posts