Lewis's Tech Keep
6/21 TIL (상속) 본문
- 이미 존재하는 클래스를 기반으로 새 클래스를 만드는 방법
- 생성자 호출 순서
: 부모없이 자식이 생길 수 없다 (생물학적 관계라면!)
: 1. 메모리에 개체 생성 2. 부모 생성자 호출 3. 자식 생성자 호출
: 부모 생성자를 어떤 생성자를 할 지 정하지 않는다면 기본 생성자를 호출함.
- 개체는 생성 시 부터 유요한 상태를 가져야 한다.
- 자식 생성자에서 부모 생성자 호출 방법
: super();
- super 키워드
: 현 개체의 부모 부분을 가리킴
: 부모의 멤버 변수 or 메서드 호출할 때도 사용한다.
- 부모가 자식을 호출할 수는 없다. (자식을 상속 받지 않기 때문에 = 받는 것은 불가능하기 때문)
- 부모 접근 방법
: protected 접근 제어자로 변경.
- protected
: 외부자들은 접근할 수 없음
: 클래스 내부, 같은 패키지에 속한 클래스, 자식 클래스에서 접근 가능
: 내포 클래스에 한 해 붙일 수 있음 ( protected class 의 경우)
- is-a, has-a 관계
: is-a -> 상속, has-a -> 컴포지션
- 상속 vs 컴포지션
: 둘 다 재사용성을 위한 방법
: oo에서 큰 결정사항 중 하나 : 상속 vs 컴포지션 고르기
- 자식 <- 부모는 명시적 캐스팅으로만 가능!
- 캐스팅 중에 자식 -> 부모 변경 -> 다른 자식 명시적 캐스팅은 오류를 발생시킨다.
: 오류는 런타임 오류 발생(ClassCastException)
- 부모형 변수에 저장된 개체가 실제 어떤 자식형인지 알 방법이 필요
: instanceOf 필요성 대두(RTTI)
- instanceOf 와 비슷한 기능을 가진 getClass()
: 개체의 정보를 가져 옴
: getClass().getName() 클래스의 이름 가져옴
- Object 클래스
: Java의 모든 클래스는 Object 클래스를 상속함
'Java > 개체지향 프로그래밍 with JAVA' 카테고리의 다른 글
중간 반성 (0) | 2021.06.23 |
---|---|
06/20 TIL (OO적 상호작용~ static, 싱글턴, 내포클래스) (0) | 2021.06.20 |
06/17, 19 TIL (개체 모델링~) (0) | 2021.06.17 |
06/17 TIL (접근 제어자~ getter/setter) (0) | 2021.06.17 |
06/15 TIL (클래스와 개체) (0) | 2021.06.15 |