2013년 7월 2일 화요일

상속의 개념

상속
- 모든 자바의 클래스는 java.lang.Object의 자손이다.(자동상속)
- final이 붙은 클래스는 상속 불가능하다.
- 어떤 클래스든 객체생성을 하면 상속받은 조상들도 같이 객체생성이 된다.
- 상속을 많이 받은 클래스일수록 객체의 크기가 커진다.
- 생성자와 초기화 블럭, private멤버를 제외한 나머지 전부를 이어 받는다.
- 상속을 잘 사용하면 보다 쉽게 클래스를 구현 할 수 있다.
- A클래스를 상속받는 B와 C가 있을때 B와 C는 서로 아무 관계가 아니다.
- 객체를 생성하여 사용하는 것을 포함(composite)이라고 한다.
- (is-a : 상속관계 / has-a : 포함관계)
- Java는 단일상속만을 허용(C++은 다중상속을 허용한다.)
- 가장 비중이 높은 클래스만을 상속하고 나머지는 객체생성하여 사용한다.

오버라이딩(Overriding)
- 조상의 메소드를 자신에 맞게 다시 쓰는것
- 변수는 오버라이딩이 불가능하다.
- final이 붙은것은 오버라이딩이 불가능하다.
- 선언부가 조상과 동일하여야 한다.
- 접근제어자가 더 좁은 의미로 바뀔수 없다.(더 넓은 접근제어자는 사용가능)
- 접근제어자중 private는 오버라이딩이 불가능하다.
- (public > protected > default > private)
- 같은 클래스내에 존재하는 클래스는 오버라이딩이 불가능하다.
- 오버로딩은 상속받은 클래스, 자기자신의 메소드 모두 가능하다.

super(), super
super - 조상 객체를 참조하는 참조형 변수
super() - 조상의 생성자를 참조하는 메소드

댓글 없음:

댓글 쓰기