자바 상속, super() 생성자 호출
super() 생성자 호출
부모클래스의 기본생성자가 아닌 실제로 존재하는 다른 오버로딩 생성자를
명시적으로 호출 가능하게 해줌.
파일명 : Test9.java
package com.test;
class MyPoint2D {
int x;
int y;
// 생성자 x y 받는 생성자
MyPoint2D(int x, int y) {
super();
this.x = x;
this.y = y;
}
// prn() 메소드 출력 "x, y"
void prn() {
System.out.print(x+", "+y);
}
}
class MyPoint3D extends MyPoint2D { // 상속 MyPoint2D
int z;
// 기본생성자
MyPoint3D() {
// 부모클래스의 기본생성자 호출
// 기본생성자 으면 생성자 지정
// 부모의 존재하는 생성자 호출
//this(1, 2, 3); // this() 생성자 호출이 오면, super()는 삽입안해줌
super(1, 2); // this()와 super() 중 하나만 올 수 있다
}
// x y z 받는 생성자
MyPoint3D(int x, int y, int z) {
super(x, y);
this.z = z;
}
// prn() 메소드 오버라이딩 "x, y, z"
@Override
void prn() {
super.prn();
System.out.println(", " + z);
}
}
public class Test9 {
public static void main(String[] args) {
MyPoint3D p = new MyPoint3D();
p.prn();
MyPoint3D p2 = new MyPoint3D(10, 20, 30);
p2.prn();
}
}