Java/Java 문법정리
[Java] 상속(extends)한 메소드의 동작
2021. 7. 8. 23:23반응형
요약
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
반응형