반응형
상속의 개념과 사례
상속
- 하위 클래스는 상위 클래스의 특징인 필드와 메소드를 그대로 물려받을 수 있는 특성
- 사람, 교직원, 학생, 교수, 행정직원, 장학생을 클래스로 표현
- 이들 클래스 간의 계층 구조에서 상속이라는 특징을 파악
- 하위의 교수, 행정직원은 상위 교징원의 특성을 모두 물려받을 수 있음
[A]는 [B]이다 →이다 관계(is-a relationship)가 성립
- [B]는 상위 클래스, [A]는 하위 클래스 관계
- 하위 클래스는 상위 클래스의 필드와 메소드를 상속받을 수 있는 특징
상속 예시
- 교직원은 사람이다.
- 사람에 정의된 필드와 메소드는 모두 교직원이 상속받을 수 있음
- 자동차는 차량이다.
- 차량에 정의된 필드와 메소드는 자동차에서 상속받을 수 있음
상위 클래스
- 부모 클래스(parent class)
- 슈퍼 클래스(super class)
- 기본 클래스(base calss)
하위 클래스
- 자식 클래스(child class)
- 서브 클래스(sub class)
- 유도 클래스(derived class)
- 파생 클래스(derived class)
extends 키워드
- 하위 클래스이름 extends 상위 클래스 이름
- 모든 클래스의 최상위는 Object 클래스
상워 클래스의 필드와 메소드를 상속
- 하위클래스
- 상위클래스의 멤버인 필드와 메소드를 구현 없이 사용
this와 super
- this는 객체 자신을 의미하는 키워드
- super는 상위 객체를 의미하는 키워드
상위 생성자 호출
기본 생성자 구현 첫 줄에서의 super()
- super()는 상위 클래스의 기본 생성자를 호출하는 문장
- 생성자의 첫 줄에서 상위 생성자를 호출하는 super() 또는 super(...)를 명시적으로 호출하지 않는다면,
- 첫 줄에서 무조건 자동으로 super()를 호출
- 자동으로 사용되는 기본 생성자의 첫 줄은 무조건 super()를 호출
객체 생성 순서
- 생성자 호출에 의해 객체가 생성될 때 항상 상위 객체를 위한 필드와 메소드가 먼저 생성된 후 하위 객체가 생성
- 자동차의 생성자 호출되는 첫 줄에 super() 호출에 의해서
- 차량 객체의 필드가 생성된 이후에 자동차 필드가 생성 및 초기화
상위 클래스에서 기본 생성자 구현
- 사용자가 직접 구현하는 생성자 첫 줄
- 상위 생성자의 호출인 super() 또는 super(인자)가 아니면
- 자동으로 기본 생성자 super() 호출
- 이 때 상위 클래스에서 기본 생성자를 사용할 수 없다면 문법 오류 발생
클래스 접근 지정자
클래스 접근 지정자는 public과 [default] 방식
- 키워드 public을 사용한 클래스는 다른 모든 클래스에 사용 가능
- 접근 지정자를 아무것도 기술하지 않은 default 클래스는 동일한 패키지의 다른 클래스에서만 사용 가능
- default 클래스는 package 클래스라고 부름
필드와 메소드 접근 지정자
- public - 모두 접근 가능 (다른 패키지인 경우 import 필요)
- protected - 상속을 통해서만 접근 가능
- default - 동일한 패키지에서만 접근 가능
- private - 접근 불가
반응형
'cs > java-spring-boot' 카테고리의 다른 글
[Zero-base] 3-2. 다형성 (0) | 2022.01.26 |
---|---|
[Zero-base] 3주차 과제 (CoordinateCompare.java) (0) | 2022.01.25 |
[Zero-base] 2-5. static과 final 그리고 배열 (0) | 2022.01.23 |
[Zero-base] 2주차 과제 (JavaSystemProperty.java) (0) | 2022.01.21 |
[Zero-base] 2-4. 생성자 (0) | 2022.01.18 |