java - @Override 예제

imjingu·2023년 8월 26일
0

개발공부

목록 보기
414/481
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()가 호출 됨

0개의 댓글