기술면접

추상 클래스와 인터페이스의 차이점은 무엇이며, 각각을 사용하는 적절한 시나리오에 대해 설명해주세요.

yeeeon89 2024. 5. 12. 18:19

추상 클래스와 인터페이스는 자바에서 객체 지향 프로그래밍의 다형성을 실현하는데 사용되는 두가지 주요 매커니즘입니다. 둘 다 직접 인스턴스화 할 수 없으며, 하위 클래스 또는 구현 클래스가 메서드를 구현하도록 강제합니다. 그러나 목적, 사용 방법, 그리고 제공하는 기능에 있어서 중요한 차이점이 있습니다. 

 

추상 클래스는 상태와 동작을 공유하는 클래스의 계층을 구성할 때 사용되며, 다중 상속을 지원하지 않습니다.

반면 인터페이스는, 구현 클래스가 특정 동작을 수행할 수 있음을 보장하는 계약 역할을 하며, 다중 구현이 가능합니다.

따라서 설계의 목적과 필요에 따라 적절한 선택이 필요합니다.