반응형

요약

 super class를 extends해서 override로 사용하면 super method는 호출이 안된다. 호출되게 하고 싶으면 super.print() 이런식으로 명시적으로 호출해주어야한다. (맨 위던 맨 아래던 상관없음)

 

코드

public class Base {
	
	void print() {
		System.out.println("base");
	}

}

 

public class Child extends Base {
	
	@Override
	void print() {
		System.out.println("child");
	}

}

 

 

public class main {

	public static void main(String[] args) {
		Child child = new Child();
		child.print();

	}

}

 

출력

child

 

 

코드

코드를 아래와 같이 바꾸어보자.

public class Child extends Base {
	
	@Override
	void print() {
    	// super.print(); 를 맨 밑에다가 놓아도 실행은 된다. 하지만
        // 그렇게되면 출력순서는 반대로 된다.
		super.print();
		System.out.println("child");
	}

}

 

출력

base
child

 

반응형