인터페이스
-
[Effective Java] 아이템20: 추상 클래스보다는 인터페이스를 우선하라Language/Java 2022. 7. 9. 09:02
✔️ 인터페이스 vs 추상 클래스 자바가 제공하는 다중 구현 메커니즘은 인터페이스와 추상 클래스 2가지다. 두 메커니즘 모두 인스턴스 메서드를 구현 형태로 제공할 수 있다. 둘의 가장 큰 차이는 추상 클래스가 정의한 타입을 구현하는 클래스는 반드시 추상 클래스의 하위 클래스가 되어야 한다는 점이다. 자바는 단일 상속만을 지원하므로, 추상 클래스 방식은 새로운 타입을 정의하는 데 커다란 제약을 안겨준다. 반면 인터페이스가 선언한 메서드를 모두 정의하고 그 일반 규약을 잘 지킨 클래스라면 다른 어떤 클래스를 상속했든 같은 타입으로 취급된다. 또한 기존 클래스에도 손쉽게 새로운 인터페이스를 구현해넣을 수 있다. (인터페이스가 요구하는 메서드를 추가하고, 클래스 선언에 implements 구문을 추가하기만 하면..