추상 클래스와 인터페이스는 자바에서 객체 지향 프로그래밍의 다형성을 실현하는데 사용되는 두가지 주요 매커니즘입니다. 둘 다 직접 인스턴스화 할 수 없으며, 하위 클래스 또는 구현 클래스가 메서드를 구현하도록 강제합니다. 그러나 목적, 사용 방법, 그리고 제공하는 기능에 있어서 중요한 차이점이 있습니다.
추상 클래스는 상태와 동작을 공유하는 클래스의 계층을 구성할 때 사용되며, 다중 상속을 지원하지 않습니다.
반면 인터페이스는, 구현 클래스가 특정 동작을 수행할 수 있음을 보장하는 계약 역할을 하며, 다중 구현이 가능합니다.
따라서 설계의 목적과 필요에 따라 적절한 선택이 필요합니다.
'기술면접' 카테고리의 다른 글
멀티 프로세스 대신 멀티 스레드를 사용하는 이유는 무엇인가요? (0) | 2024.05.08 |
---|---|
멀티스레드 프로그래밍에서 동기화(Synchronization)가 왜 필요한가요? 예를 들어 설명해주세요. (0) | 2024.05.08 |
자바에서 가비지 컬렉션(GC)의 원리를 설명해주세요. (0) | 2024.05.05 |