class Parent{
public Parent(){
System.out.println("Parent");
}
int compute(int num){
return num+1;
}
}
class Child extends Parent{
public Child(){
System.out.println("Child");
}
int compute(int num){
return num+2;
}
}
class Main {
public static void main(String[] args) {
Parent obj = new Child();
System.out.println(obj.compute(3));
}
}
결과는?
Parent
Child
5
5다.
Parent obj = new Child(); 이므로
Parent 안에 메소드가 실행되어서 결과가 4가 나올 것 같지만, 자식 클래스로 객체를 생성했으므로 자식 클래스의 메소드가 실행되어서 5가 된다.
또 부모 클래스의 생성자, 자식 클래스의 생성자에 모두 출력함수를 실행할 경우, Parent, Child 순으로 출력되는 것을 확인할 수 있다.