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();
}
}
'IT > Java' 카테고리의 다른 글
자바 다형성, 정적바인딩, 동적바인딩, instanceof (0) | 2018.07.18 |
---|---|
자바 다형성, 참조형(레퍼런스형) 형변환, 업캐스팅, 다운캐스팅 (0) | 2018.07.18 |
자바 상속, 메소드 오버라이딩, 메소드 오버라이딩 제약사항, 생성자 (0) | 2018.07.17 |
자바 상속, 메소드 오버라이딩 (0) | 2018.07.17 |
자바 상속, super, 멤버변수 오버라이드(override) (0) | 2018.07.17 |