오늘은 추상클래스와 인터페이스에 대해서 정리해보려한다.
1. 추상 클래스 (abstract class)
하나 이상의 추상 메소드를 포함하는 클래스
추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있다.
※ 추상 메소드(abstract method)
자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드
더보기
- 오버라이딩 (Overriding)
상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 재정의하는 것
오버라이딩은 부모 클래스의 메소드를 재정의하는 것이므로, 자식 클래스에서는 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 함
@Override
Override 어노테이션은 오버라이딩을 검증하는 기능을 함.
2. 인터페이스
다중상속이 가능하며 추상 메소드의 모음
추상 메소드와 상수만 가능
인터페이스에 명시된 추상메소드들을 모두 구현해야한다.
구현체 네이밍은 xxxImpl 과 같이 클래스 이름
구현체란 인터페이스를 구현한 클래스라는 뜻이며, 구현 클래스 혹은 실체 클래스 라고도 부름
3. 차이점?
추상클래스 = ~의 한 종류 , IS - A
생성자, 필드, 일반 메소드도 포함 가능
인터페이스 = ~을 할 수 있는, be able to , HAS - A
생성자, 필드, 일반 메소드 포함 불가능
'Programming Language > Java' 카테고리의 다른 글
Spring framework란? (0) | 2021.08.30 |
---|