private 접근 제한을 갖는 멤버변수 및 메소드는 물려받을 수 없다.
class C extends P {ㆍㆍㆍ}
→ extends 발견
→ 자식(C)이 부모(P)를 물려받는다. (상속)
→ 상속이므로 부모부터 찾자!
A( ) {ㆍㆍㆍ} 의 형태, 매개변수 없음A(int a) {ㆍㆍㆍ}의 형태, 매개변수 있음super( ); : 보통 생략되어 안 보임 → 부모의 기본 생성자 호출 (매개변수 없는 생성자)
super(a); : 인자가 있어서 생략 불가 → 부모의 매개변수 생성자 호출
여기서 매개변수(a)의 값을 부모한테 전달한다.
super(a/10);
→ a/10을 연산하여 부모클래스에 a값으로 전달한다. (a=100)
그러나 자식클래스에서는 여전히 연산하기 전의 값인 a이다. (a=1000)
super.display( ); : 자식에서 부모의 display( ) 함수를 호출 display( ) 함수는 부모한테 정의되어있다)Parent p1 = new Child( );
// 🐓 p = new 🐥();
부모클래스에서 정의된 메서드 → 부모클래스의 변수를 참조
자식클래스에서 정의된 메서드 → 자식클래스의 변수를 참조
메서드 내에서 사용하는 변수 a는 해당 클래스에 정의도니 변수를 참조한다.
부모가 가지고 있는 메서드만 사용할 수 있다.
A ab = new B( );: 앞의 형태가 A 이므로, A에 정의된 변수 값을 사용한다.B ab = new B( );: 앞의 형태가 B 이므로, B에 정의된 변수 값을 사용한다.