목차
추상클래스
- 추상 메서드가 하나라도 포함된 클래스.
abstract
키워드를 붙여서 정의한다.- 상속 받은 자녀 클래스에서 반드시 추상 메서드를 오버라이딩해서 구현해야 한다.
- 자신의 생성자로 객체 생성이 불가능하다.
- 추상클래스를 사용하는 이유
- 공통된 필드나 메서드를 추출하여 다른 클래스들에서 동일된 내용으로 작성하도록 규격화한 것
- 추상메서드
- 내용을 갖지 않고 선언만 된 메서드
인터페이스
- 상수와 추상메서드만 가지는 일종의 추상 클래스
- 다중상속이 가능하다.
- 상속의 관계가 없는 클래스 간에 서로 공통되는 로직을 구현해서 사용할 수 있도록 한다.
인터페이스를 사용하는 이유
- 협업 시 비슷한 구조의 메서드를 여러 개 구현하는 상황에서 하나의 규약으로써 구현 방식을 통일시킬 수 있고, 인터페이스에 구현된 추상 메서드의 매개변수와 함수명을 통해 인터페이스만으로도 대략적인 기능을 파악할 수 있다.(가독성)
함수형 인터페이스
-
추상 메서드가 1개인 인터페이스
-
예시 - Comparator
interface CustomComparator implements Comparator { @Override public int compare(Long o1, Long o2) { return o2-o1 < 0 ? -1 : 1; } }