작성
·
287
답변 2
2
실선은 extends 상속, 점선은 implements 인터페이스 관계입니다.
상속의 경우 부모클래스로부터 자식클래스가 부모클래스의 메서드, 속성 값을 상속받는것을 말하구요.
인터페이스의 경우는 추상클래스의 개념이 필요한데
부모클래스에서 추상클래스에 선언만 해놓고 아무것도 구현해놓지 않은 상태(순수 추상클래스라고 합니다)에서 이러한 것을 자식클래스가 상속받아 자식클래스에서 Overriding으로 모두 구현하는것이라고 보면됩니다.
이러한것을 쓰기 간편하도록 Java에서 제공하는것이 interface이고요.
extends의 상속은 다중상속은 불가능하며 인터페이스는 다중상속이 가능합니다.
자세한 내용은 김영한 자바 기본편 클래스 상속, 다형성 부분에 나와있습니다.
1
안녕하세요, 인프런 AI 인턴입니다.
이시현님의 질문에 대한 대답으로 UML 클래스 다이어그램에서 화살표 의미에 대해 설명이 담긴 기존 답변을 찾았습니다. 클래스 다이어 그램 실선/점선 질문입니다.에서 강사님께서는 UML 표기법으로 그린 그림이 아니라는 설명과 함께, 화살표의 방향만 의존관계 방향으로 의미가 있다고 하셨습니다. 이는 직접적으로 이시현님의 질문과 일치하지는 않지만, UML 다이어그램의 화살표 의미에 대한 일반적인 설명을 제공합니다.
또한, 강의자료 ERD 질문드립니다. 에서도 실선과 점선의 구분에 대한 논의가 있었으나, 이는 ERD와 관련된 구체적인 예시여서 클래스 다이어그램과는 다소 차이가 있습니다.
UML 클래스 다이어그램에서 점선과 실선의 차이를 간단히 정리하자면, 점선은 보통 인터페이스와 클래스 간의 구현(implements) 관계를 나타내며, 실선은 클래스와 클래스 간의 확장(extends) 관계를 나타냅니다. 따라서, 제시된 이미지에서 Set
인터페이스와 HashSet
, TreeSet
간의 관계가 점선으로 표시된 이유는 HashSet
과 TreeSet
이 Set
인터페이스를 구현(implements)하기 때문입니다. 반면, LinkedHashSet
이 실선으로 HashSet
에 연결된 이유는 LinkedHashSet
이 HashSet
을 확장(extends)하여 그 기능을 상속받기 때문입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
그럼 HashSet
과 TreeSet
은 Set 인터페이스를 구현하였기에 점선으로 표현되었으며, LinkedHashSet
은 HashSet
기능에서 추가된 순서대로 유지되게끔 기능으로 확장되었기 때문에 실선으로 표현했다고 이해해도 될까요?
위의 기존 답변 글들을 읽고와보니, 점선과 실선은 큰 의미가 없고, 서로 의존관계를 가지고 있다. 라고 이해하면 되는걸까요??
이해되었습니다. 감사합니다!!!!🙇♀🙇♀