티스토리 뷰

웹 프로그래밍/JAVA

Class의 상속관계(JAVA)

박강균 IT 2021. 2. 27. 16:28

자바에서 is-a 관계를 가지고 있는 클래스들을 상속관계라고 말한다. 

 

다음 과 같은 구조를 가진 클래스를 만든다고 할때 Animal 클래스에서 문자열 name과  setName메소드가 선언이 되었는데, 밑에 Dog클래스는 문자열과 메소드를 선언하지 않았음에도 사용이 가능하다. 빨간색 박스를 보면 알겠지만 

Dog타입의 새로운 Dog생성자를 만들었을뿐 Animal 클래스의 생성자를 만든게 아니다. 그럼에도 

setName과 name을 여전히 사용할 수 있다. 이렇듯 상속관계는 이미선언되어있는 메소드를 굳이 다시 선언할필요없이 자식이 자유롭게 사용할 수 있는 구조이다. 

이렇듯 편리한 기능이지만 상관관계를 생각해서 만들지 않으면 의미가 없다, 부모객체는 자식객체의 특성을 가지고 있지만 조금 더 넓은 개념(ex) 동물)  이고, 자식객체인경우 부모객체에서 조금더 세분화된 부분이다. (ex)개)  이렇듯 부모 자식클래스를 만들때에는 상관관계를 정확하게 생각해내야 나중에 코드가 꼬이지 않는다. 

 

두줄요약: 부모 자식클래스는 상관관계를 정확하게 해야함, is-a(상속관계)를 쓰는  이유는 부모가 가지고 있는 기능들을 자식이 그대로 사용할 수 있어서 코드의 길이도 줄일수있음 

 

+ 일반적으로 부모클래스보다 자식클래스가 더 많은 기능을 가지고 있어야한다. 더 세분화 되어있기때문... 부모클래스의 메소드를 사용할 수 있지만, 그렇다고 해서 자식클래스에서 기능을 추가할 수 없는건 아니다. 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함