클래스간의 관계 - 상속관계 ( inheritance )Backend/java2018. 8. 9. 18:35
Table of Contents
반응형
클래스간의 관계 – 상속관계 ( inheritance )1. 공통부분은 조상에서 관리하고 개별부분은 자손에서 관리한다.2. 조상의 변경은 자손에 영향을 미치지만 , 자손의 변경은 조상에 아무런 영향을 미치지 않는다.Ex)class Parent {}class Child extends Parent {}class Child2 extends Paren {}class GrandChild extends Child {}
최상위 부모 클래스는 Parent {} 가 될 것이고 , Parent 클래스를 상속받는 Child ,Child2 그리고 Child 클래스는 GrandChild 클래스의 부모클래스가 될 것이다.이 클래스들의 상속관계를 간략한 그림으로 그리면 와 같습니다.이것을 상속계층도라고 하는데요...상속계층도를 그려보면... 클래스간의 관계를 쉽게 이해할 수 있습니다.상속관계에는 조상과 자식관계만 있을 뿐, 형제와 같은 관계는 없습니다.Child와 Child2클래스는 Parent클래스라는 공통 조상을 가지고 있지만이 두 클래스는 아무런 관계도 아닙니다.만일 Child와 Child2클래스에 새로운 메서드를 추가해야 한다면...이 두 클래스에 각각 추가하는 것보다... 이들의 공통조상인 Parent클래스에추가하는 것이 좋습니다.예를 들어... Swing이나 AWT와 같은 윈도우 프로그래밍에서는 한 화면이 하나의 클래스인데요갑자기 프로그램의 모든 화면의 기본 디자인을 바꾸기로 결정되었다면...프로그램의 모든 화면을 일일이 다 바꿔야 할테니... 개발자에게는 정말 피곤한 일이겠죠.그러나 기본 공통 화면을 만들어 놓고, 모든 화면이 이 공통화면을 상속받도록 했다면...모든 화면을 일일이 고치는 대신... 이 공통화면 하나만 수정하면 될 것입니다.여러 클래스의 공통적인 멤버들을 뽑아내서... 조상클래스로 만들어 상속받도록 하고...공통적인 부분은 조상클래스에서 관리하고... 개별적인 부분은 자손클래스에서 관리하도록 하는 것이 좋습니다.만일 Parent클래스에 새로운 멤버변수 x가 추가되면 어떤 클래스들이 영향을 받을까요...예... 맞습니다. Parent의 모든 자손클래스들... Child, Child2, GrandChild에 멤버변수 x가 새로 추가된 셈이 됩니다.이처럼... 조상클래스의 변경은 모든 자손클래스와 자손의 자손클래스까지 영향을 미치지만...자손의 변경은 조상에게 아무런 영향을 미치지 않습니다.예를 들어서... Child클래스에 새로운 멤버변수 y가 추가되었다면...Child클래스의 조상인 Parent클래스는 아무런 영향을 받지 않습니다. Child클래스의 자손인 GrandChild클래스만 영향을 받을 뿐입니다.이처럼 조상의 변경은 자손대대로 영향을 미치기 때문에...원하지 않는 클래스에 영향이 미치지 않도록... 상속관계를 세분화 해서 잘 관리해야 합니다.
반응형
'Backend > java' 카테고리의 다른 글
클래스간의 관계결정하기 ( 상속 Vs 포함 ) (0) | 2018.08.09 |
---|---|
클래스간의 관계 - 포함관계 (0) | 2018.08.09 |
상속의 정의와 장점 ( 자세히 ) (0) | 2018.08.09 |
상속_연습문제_답(BookMgr) (0) | 2018.08.08 |
상속_연습문제_답 ( Book class ) (0) | 2018.08.08 |
@IT grow. :: IT grow.
#IT #먹방 #전자기기 #일상
#개발 #일상