언어 Language/자바 Java

자바 클래스Class 상속inheritance 예제

Tap to restart 2021. 4. 17. 17:00
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 순으로 출력되는 것을 확인할 수 있다.