몬그로이

한 클래스는 한가지 인터페이스만 구현할까? 본문

Dev 언어 정리 & Self QnA/Java

한 클래스는 한가지 인터페이스만 구현할까?

Mon Groy 2024. 4. 24. 18:00

답부터 말하자면

'아니다'

 

LinkedList 클래스는 Java에서 두 가지 인터페이스인 Queue와 List를 모두 구현했다

Java에서는 인터페이스의 다중 구현이 가능하기 때문이다

LinkedList 클래스는 Qeue의 선입선출(FIFO) 동작을 지원하는 Queue 인터페이스를 구현하면서도

데이터의 순서를 유지하는 List의 특성을 가지고 있다

따라서 LinkedList는 Queue와 List의 모든 동작을 수행하며

Queue와 List의 모든 메서드를 구현한다

이러한 다중 구현은 유연성을 제공하며

상황에 따라 LinkedList를 Queue 또는 List의 생성자로 사용될 수 있다

 

 

< 인터페이스를 다중으로 구현한 클래스들>

 

ArrayList

List와 RandomAccess 인터페이스

List는 순서가 있는 데이터의 집합을 나타내며

RandomAccess는 빠른 임의 접근을 제공하는 마커 인터페이스이다


HashMap

Map과 Serializable 인터페이스

Map은 키-값 쌍의 집합을 나타내며

Serializable은 클래스에 직렬화 기능을 준다

더보기

직렬화된 객체는 바이트 스트림으로 변환되어 파일에 쓰거나 네트워크로 전송될 수 있다

반대로, 직렬화된 객체는 역직렬화(Deserialization) 과정을 통해 다시 객체로 변환될 수 있다


HashSet

Set과 Serializable 인터페이스

Set은 순서가 없는 고유한 요소의 집합을 나타내며

Serializable은 클래스에 직렬화 기능을 준다