추상 클래스 (abstract class
) → "상속"을 통한 코드 재사용이 필요할 때 사용
✔ 인터페이스 (interface
) → "구현 강제"가 필요하거나 다중 상속이 필요할 때 사용
➡ 일반적으로 "행위(기능)"를 정의하고 싶으면 인터페이스, "공통된 상태 + 동작"을 포함하려면 추상 클래스를 사용
왜 인터페이스는 default
메서드만 가능할까?
인터페이스는 원래부터 "설계도" 역할을 하며, 구현을 강제하는 용도로 만들어졌습니다.
즉, "어떤 기능을 제공할지 정의"하는 역할을 하며, 객체의 상태를 관리하지 않습니다.
따라서, 원래는 추상 메서드(abstract
메서드)만 허용되었고, 구현된 메서드는 가질 수 없었습니다.
그러나 Java 8부터 default
메서드가 추가된 이유는 "기존 인터페이스의 호환성 유지" 때문
댓글 없음:
댓글 쓰기