자식 클래스의 객체 생성 시, 부모 클래스의 생성자가 먼저 실행되는 것
public class 부모클래스 {
부모클래스() {
System.out.println("부모 클래스 호출");
}
}
public class 자식클래스 extends 부모클래스 {
자식클래스() {
System.out.println("자식 클래스 호출");
}
}
public static void main(String[] args) {
new 자식클래스();
}
출력결과
부모클래스 호출
자식클래스 호출
super()
생성자부모 생성자 호출
this.
VS super()
🍑this()
⇒ 같은 클래스 내 또 다른 생성자 호출super()
⇒ 상속 받는 부모의 생성자를 호출super()
사용하기super()
로 특정 생성자를 명시적으로 호출super.
사용final String name = "yeppi";
final String printInfo() { . . . }
public final class Student { . . . }
extends
) 금지클래스명.값
으로 사용 가능public class Define {
public static final int MIN = 1;
public static final double PI = 3.14;
public static final String GREETING = "Good Morning!";
}
public class UsingDefine {
public static void main(String[] args) {
System.out.println(Define.GREETING);
System.out.println(Define.MIN);
System.out.println("원주률은" + Define.PI + "입니다.");
}
}
자식 객체를 부모 타입의 참조변수에 할당하는 것
형 a = new 동생(); // 형제 레벨에서는 불가능
아버지 b = new 아들(); // 부모에 자식을 할당 가능
아들 c = new 할아버지(); // 자식에 부모는 할당 불가능
// a 타입의 객체 3개를 저장할 수 있는 배열 생성
a[] aList = new 사람[3];
// 배열 초기화
a[0] = new 사람();
a[1] = new 아버지();
a[2] = new 아들();
// Human 타입의 객체 4개를 저장할 수 있는 배열 생성 및 초기화
a[] aList = {new 사람(), new 아버지(), new 아들()};
묵시적 타입 변환이 된 객체를 원래의 타입으로 다시 변환하는 것
person
)을 자식 타입(아들
)로 강제 형변환아버지 a = new 아들();
아들 yeppi = (아들) person;