Leeyebin의 블로그
[JAVA]추상클래스 vs 인터페이스 본문
추상클래스 vs 인터페이스
- 추상 클래스는 extends, 인터페이스는 implements 키워드 사용
- 추상 클래스는 필드를 가질 수 있지만 인터페이스는 불가능
- 인터페이스에서 Static 변수는 가질 수 있음
- 추상 클래스도 클래스이기 때문에 다중 상속이 불가능
- 다중 상속이 불가능한 제약을 인터페이스로 해결
- 인터페이스는 메서드의 구현부분과 필드가 없기 때문에 다중상속 가능
- 추상 클래스는 클래스를 상속 받아서 기능을 이용하거나 확장하는 목적
- 인터페이스는 메서드 구현을 강제하여 하위 클래스에게 같은 동작을 행하도록 함.
어떤 것을 사용할 것인가.
- 추상 메서드만으로 가능한 경우에는 인터페이스를, 공통된 구현 부분이나 필드가 필요한 경우에는 추상클래스를 사용한다.
- 애초에 클래스를 설계할 때 필드를 가질 수 없다는게 명확하면 인터페이스를 하는 것을 권장한다.
'프로그래밍 > 깜빡하는 것들' 카테고리의 다른 글
Call by Value vs Call by Reference (0) | 2017.05.16 |
---|---|
java vs javascript (0) | 2017.02.12 |
overloading vs overriding (0) | 2017.02.12 |
Comments