package chapter20230825;
class Animal {
public void methodA() { // public static void methodA()
System.out.println("static method in Animal");
}
}
public class Dog extends Animal{
@Override
public void methodA() { // public static void methodA()
System.out.println("static method in Dog");
}
public static void main(String[] args) {
Dog dog = new Dog(); // 자식
Animal animal = dog; // animal에 자식을 넣어줌
animal.methodA(); // static method in Animal
dog.methodA(); // static method in Dog
}
}
Dog 참조 변수를 통하여 정적 메서드를 호출하면 자식 클래스의 정적 메서드를 호출,
Animal 참조 변수를 통하여 정적 메서드를 호출하면 부모 클래스의 정적 메서드가 호출됨
만약 정적 메서드가 아니었다면 animal를 통하여 호출하여도 메서드 오버라이딩 때문에
자식 클래스의 methodA()가 호출 됨