상속(Inheritance)이란?
상속 대상 제한이란?
참고 : 부모 클래스가 다른 패키지에 있을 경우, default 접근자 갖는 필드, 메소드도 제외 됨.
상속(Inheritance)은 자식이 상속 받은 부모를 지정함.
extends
를 사용해 부모를 지정함.
public class B exthends A{}
B
가 부모 클래스인 A
를 지정함.java.lang.Object
클래스임.java.lang.Object
를 상속 받음.참고 : Java에서는 단일 상속만 가능함. 부모 클래스를 나열 할 수 없음.
package p01.basic2 실습
명시적 부모 생성자 호출
부모의 객체를 생성할 때, 부모의 생성자를 선책해 호출함.
자식
(매개변수선언
, ...) { super
(매개값
, ... ); }의 형태!! : 클래스를 만들면 일단 default constructor 만드세요! 어떤 클래스를 생성하더라고 default constructor는 항상 만들 것을 권유합니다. 파일을 수정하거나 이후에 다른 용도로 사용하게될 가능성을 고려하는 것이죠.
매소드의 재정의(Override)란?
@Override annotation이란?
protected 접근 제한자
class에서 자동형변환(promotion) 정의
1. 부모 자식 클래스간에서만 발생함
2. 자식 인스턴스를 부모 데이터 타입으로 넘길 때 발생되는 현상
- Person p = new Child(); 와 같은 개념
3. 힙메모리 사용 관점에서 보면, promotion은 자식 인스턴스가 생성한 자식 인스턴스 2개 중 부모만 사용함
4. 자식 인스턴스를 부모 인스턴스로 promotion하면, 부모 클래스에서 선언된 field method만 사용 가능