728x90
Interface의 특징
- 클래스가 아님
- 오직 추상메서드와 상수만을 멤버로 갖음.
- Implements 키워드를 사용함.
- 상속의 관계가 없는 클래스간 서로 공통되는 로직을 구현하여 쓸 수 있음.
- Extends는 하나의 클래스만 상속 가능하나 Interface는 다중 상속이 가능함.
Abstract의 특징
- 추상메서드를 하나 이상 가진 클래스임
- 자신의 생성자로 객체 생성 불가능함.
- 하위 클래스를 참조하여 상위 클래스의 객체를 생성함.
- 하위 클래스를 제어하기 위해 사용함.
Interface vs Abstract
공통점
- new 연산자로 인스턴스 생성 불가능.
- 프로토타입만 있는 메서드를 가짐
- 사용하기 위해서는 하위클래스에서 확장/구현 해야함
차이점
- 사용하는 키워드가 다름
- Abstract는 일반 메서드를 사용할 수 있지만, Interface는 메서드 선언만 가능
728x90
반응형
'language > java' 카테고리의 다른 글
[java] 2가지 데이터 타입 Primitive type, Reference type (0) | 2021.02.23 |
---|---|
현재 날짜의 다음달, 이전달 가져오기(Calendar, DateFormat) (0) | 2017.01.18 |
mybatis mapper xml에서 비교연산자 <=, >=, <, > 처리방법 (0) | 2017.01.03 |
map 반복(iterator) 사용 방법 (0) | 2016.10.27 |
HashMap 형태의 parmeter의 필수 값을 체크 (0) | 2016.10.20 |