본문 바로가기
study/Java

[Java] 22. super 생성자

by 금이패런츠 2022. 3. 21.
728x90
반응형
package chap7;
/*
 * super 생성자
 * 1. 부모클래스의 생성자를 자손클래스에서 호출
 * 2. 첫줄에서 호출해야 함
 * 3. 부모클래스의 생성자 중 매개변수 있는 생성자만 있다면 자손클래스의 생성자에서 
 *    반드시 super()를 호출해야함. 이때 super(매개변수)는 부모클래스의 생성자에
 *    맞아야 한다.
 * 4. 부모클래스의 생성자 중 매개변수가 없는 생상자가 존재하면, super() 생략할 수 있음.
 * 5. 자손클래스의 생성자에서 부모클래스의 생성자를 호출해야함.
 * 
 * 상속관계 : is a 성립함.
 *   SmartPhone is a Phone (o) =>  SmartPhone extends Phone 성립.
 *   인터넷계좌 is a 계좌       (o) 
 *   
 *   계좌 has a 계좌번호           => 멤버로 접근
 *                                class 계좌 { 계좌번호 no}
 *   
 */
class Parent2 {
	int x = 10;
	Parent2(int x) { //생성자
		this.x = x;
	}
//	Parent2() {
//		this(0);
//	}
}
class Child2 extends Parent2 {
	int x = 20;
	Child2() {
//		super(); //생략됨.
		super(100); //부모클래스의 생성자에 맞도록 호출해야함.
	}
	void method() {
		System.out.println("x=" + x);
		System.out.println("this.x=" + this.x);
		System.out.println("super.x=" + super.x);
	}
}
public class SuperEx2 {
	public static void main(String[] args) {
		Child2 c = new Child2();
		c.method();
	}
}
728x90
반응형