상속?
상속이란 말 그대로 어떤것을 물려 받는 것 입니다.
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 |