인프런 커뮤니티 질문&답변

이시현님의 프로필 이미지

작성한 질문수

김영한의 실전 자바 - 중급 2편

UML 클래스다이어그램 화살표 의미

24.06.26 00:20 작성

·

226

0

컬렉션 프레임워크 - Set 강의 중 UML 클래스 다이어그램에 관해 궁금증이 생겼습니다.

HashSet, TreeSet, LinkedHashSet 즉 Set의 주요 구현체들을 설명하셨을때,

여기서 점선으로 된것과 실선으로 된것의 차이점은 무엇일까요??


인터페이스인 Set의구현체로 HashSet , TreeSet 등이 있다는 것은 이해가 가지만,
LinkedHashSet은 왜 실선으로 표시하는 걸까요?? 이 두개의 차이점에 대해 정확히 알고싶습니다!

답변 2

2

Nerd님의 프로필 이미지

2024. 06. 26. 08:03

실선은 extends 상속, 점선은 implements 인터페이스 관계입니다.

상속의 경우 부모클래스로부터 자식클래스가 부모클래스의 메서드, 속성 값을 상속받는것을 말하구요.

 

인터페이스의 경우는 추상클래스의 개념이 필요한데

부모클래스에서 추상클래스에 선언만 해놓고 아무것도 구현해놓지 않은 상태(순수 추상클래스라고 합니다)에서 이러한 것을 자식클래스가 상속받아 자식클래스에서 Overriding으로 모두 구현하는것이라고 보면됩니다.

이러한것을 쓰기 간편하도록 Java에서 제공하는것이 interface이고요.

 

extends의 상속은 다중상속은 불가능하며 인터페이스는 다중상속이 가능합니다.

자세한 내용은 김영한 자바 기본편 클래스 상속, 다형성 부분에 나와있습니다.

이시현님의 프로필 이미지
이시현
질문자

2024. 06. 26. 22:05

이해되었습니다. 감사합니다!!!!🙇‍♀🙇‍♀

1

인프런 AI 인턴님의 프로필 이미지

2024. 06. 26. 00:26

안녕하세요, 인프런 AI 인턴입니다.

이시현님의 질문에 대한 대답으로 UML 클래스 다이어그램에서 화살표 의미에 대해 설명이 담긴 기존 답변을 찾았습니다. 클래스 다이어 그램 실선/점선 질문입니다.에서 강사님께서는 UML 표기법으로 그린 그림이 아니라는 설명과 함께, 화살표의 방향만 의존관계 방향으로 의미가 있다고 하셨습니다. 이는 직접적으로 이시현님의 질문과 일치하지는 않지만, UML 다이어그램의 화살표 의미에 대한 일반적인 설명을 제공합니다.

또한, 강의자료 ERD 질문드립니다. 에서도 실선과 점선의 구분에 대한 논의가 있었으나, 이는 ERD와 관련된 구체적인 예시여서 클래스 다이어그램과는 다소 차이가 있습니다.

UML 클래스 다이어그램에서 점선과 실선의 차이를 간단히 정리하자면, 점선은 보통 인터페이스와 클래스 간의 구현(implements) 관계를 나타내며, 실선은 클래스와 클래스 간의 확장(extends) 관계를 나타냅니다. 따라서, 제시된 이미지에서 Set 인터페이스와 HashSet, TreeSet 간의 관계가 점선으로 표시된 이유는 HashSetTreeSetSet 인터페이스를 구현(implements)하기 때문입니다. 반면, LinkedHashSet이 실선으로 HashSet에 연결된 이유는 LinkedHashSetHashSet을 확장(extends)하여 그 기능을 상속받기 때문입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이시현님의 프로필 이미지
이시현
질문자

2024. 06. 26. 00:37

그럼 HashSetTreeSet은 Set 인터페이스를 구현하였기에 점선으로 표현되었으며, LinkedHashSetHashSet기능에서 추가된 순서대로 유지되게끔 기능으로 확장되었기 때문에 실선으로 표현했다고 이해해도 될까요?

위의 기존 답변 글들을 읽고와보니, 점선과 실선은 큰 의미가 없고, 서로 의존관계를 가지고 있다. 라고 이해하면 되는걸까요??