-
[JAVA] 추상 클래스와 인터페이스 비교프로그래밍/JAVA 2019. 7. 1. 23:29
추상 클래스와 인터페이스가 유사한 점은 다음과 같다.
- 객체를 생성할 수 없고, 상속을 위한 슈퍼 클래스로만 사용
- 클래스의 다형성을 실현하기 위한 목적
표를 통해 차이점을 알아보면
비교 목적 구성 추상 클래스 - 서브 클래스에서 필요로 하는 대부분의 기능을 구현하여 두고 상속받아 활용할 수 있도록 함
- 서브 클래스에서 구현할 수 밖에 없는 기능만을 추상 메소드로 선언하여 서브 클래스에서 구현하도록 하는 목적
- 추상 메소드와 일반 메소드 모두 포함
- 상수, 변수 필드 모두 포함
인터페이스 - 객체의 기능을 모두 공개한 표준화 문서
- 인터페이스를 상속받는 클래스의 목적에 따라 인터페이스의 모든 추상 메소드를 만들도록 하는 목적
- 변수 필드(멤버 변수)는 포함 X
- 상수, 추상 메소드, 일반 메소드, default 메소드, static 메소드 모두 포함
- protected 접근 지정 선언 불가
- 다중 상속 지원
추상 클래스는 키워드 그대로 확장, 상속을 의미함으로써, 물려주는 개념이 된다. 그렇기에 부모-자식 관계인 계층 구조를 나타내며 상속을 강제화한다.
하지만 인터페이스는 상속 개념이 아닌, 동일한 동작을 위한 구현을 강제화 한다.
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] JDK 설치 및 환경변수 설정 (0) 2019.12.16 [JAVA] length, length(), size() (0) 2019.08.08 [JAVA] Scanner를 이용하여 char 입력받기 (0) 2019.06.26 [JAVA] Float, Double형 소수점 자리수 정하기 (2) 2019.06.26 [JAVA] 오버로딩과 오버라이딩의 차이점 (0) 2018.12.05