package ex0722;

public class Ex03_Inheritance {
	public static void main(String[] args) {
		Sample3 ss = new Sample3();
		ss.disp();
		
		/*
		 - 하위 클래스의 객체를 생성하는 경우
		 	1. 상위 클래스의 필드 메모리 할당, 기본값 초기화, 초기화 블럭 실행
		 	2. 하위 클래스의 필드 메모리 할당, 기본값 초기화, 초기화 블럭 실행
		 	3. 상위 클래스의 생성자 몸체 실행(하위 클래스 생성자의 최상단의 super([인수])호출되어 실행됨)
		 	4. 하위 클래스의 생성자 몸체 실행
		 */
		
	}
}
class Test3 {
	int a=10;
	
	public Test3() {
		System.out.println("Test2 생성자...");
	}
	
	public void print() {
		System.out.println(a);
	}
}

class Sample3 extends Test3{
	int x=100;
	
	public Sample3() {
		super(); // 상위 클래스 생성자 몸체 호출. 최상단에 한번만 가능. 
				 // 없으면 컴파일할 때 컴파일러가 super(); 추가하여 상위 클래스의 디폴트 생성자 몸체 호출 
		System.out.println("Sample3 생성자...");
	}
	
	public void disp() {
		System.out.println(a+","+x);
	}

 

+ Recent posts