상속?

상속이란 말 그대로 어떤것을 물려 받는 것 입니다.


Parent클래스와 이를 상속받는 Child클래스를 만들어 상속에 대해 알아보도록 하겠습니다.





음..;; 잘 안보일지도 모르겠네요ㅎㅎ;;


Parent클래스와 Child클래스를 만들었습니다.

Parent클래스를 상속받는 Child클래스를 만들겠다고 하였으므로 Child클래스가 Parent클래스를 상속 받음을 알 수 있도록

extends키워드를 이용해 상속을 구현하게 됩니다.


extends키워드를 이용하면 상속을 구현 할 수 있습니다.


위 이미지의 상속관계를 가지는 두개의 클래스에서 상속을 해주는 클래스(Parent클래스)를 상위클래스

상속을 받는 클래스(Child클래스)를 하위클래스 라고 부릅니다.


그림으로 표현하면 이렇게 표현해 볼 수가 있을 것 같습니다.

하위클래스는 상위클래스의 모든 멤버를 포함 하기 떄문이죠.


제가 만약 상위 클래스에 age라는 변수를 하나 추가 한다면 하위 클래스는 age변수를 사용 할 수 있는것이죠.




Child클래스에 name이라는 멤버변수를 만들지도 않았고, setName이라는 메소드도 만들지 않았는데 사용을 했습니다.

이게 바로 상속을 받았기에 가능한겁니다.


그러면 Child클래스를 또 다른 클래스인 GrandChild클래스가 상속을 받게 된다면 어떨까요?

GrandChild클래스는 최상위클래스인 Parent클래스와도 상속관계에 속하게 됩니다.


코드로는 표현하지 않겠습니다. 직접 해보세요 ㅎ


이렇게 상속을 이용하면 상위클래스가 하위클래스, 하위의 하위클래스까지 계속 영향을 미치게 됩니다.

상위클래스에 있는 공통적인 부분만 수정해주게 된다면 하위클래스는 자신에게 정의되어진 멤버만을 관리하면 되므로

코딩하는 사람에게는 관리가 조금 더 편해질것 같네요.


하나 더!!


자바는 다중상속을 허용하지 않습니다.


다중상속을 할 경우 클래스간의 관계가 매우 복잡하고, 클래스로부터 상속받은 멤버간의 이름이 같은 경우 구별할 수 없다는 단점을 가진다고 합니다.(자바의정석 참고)

자바는 단일상속만을 허용합니다.


이렇게 상속에 대해 알아 보았습니다.



☞ 상속을 구현하기 위해서는 extends 키워드를 사용한다!!

☞ 자바는 다중상속을 허용하지 않는다!!

☞ 열심히 공부해야겠다.. ㅠ


'프로그래밍 > Java' 카테고리의 다른 글

[Java] 18. super와 super()  (0) 2015.05.12
[Java] 17. 오버라이딩(Overriding)  (0) 2015.04.21
[Java] 15. this  (0) 2015.03.30
[Java] 14. 생성자(Constructor)  (0) 2015.03.28
[Java] 13. 메소드 오버로딩(Method Overloading)  (0) 2015.03.21