9장 다형성
1. 다형성
예시 코드
1. 업캐스팅과 다운캐스팅
업캐스팅(Upcasting)
다운캐스팅(Downcasting)
2. 다형성과 메모리

2. 동적 바인딩
예시로 다시 보기
항목
설명
Last updated

Last updated
class Animal {
void sound() {
System.out.println("동물이 소리를 냅니다.");
}
}
class Dog extends Animal {
void sound() {
System.out.println("멍멍!");
}
}
class Cat extends Animal {
void sound() {
System.out.println("야옹!");
}
}
public class Test {
public static void main(String[] args) {
Animal myAnimal1 = new Dog();
Animal myAnimal2 = new Cat();
myAnimal1.sound(); // 멍멍!
myAnimal2.sound(); // 야옹!
}
}Animal myAnimal = new Dog(); // 업캐스팅
myAnimal.sound(); // Dog의 오버라이딩된 sound() 호출Animal myAnimal = new Dog();
Dog myDog = (Dog) myAnimal; // 다운캐스팅
myDog.fetch(); // Dog 고유 메서드 호출Animal myAnimal = new Cat();
myAnimal.sound(); // 컴파일 시점: Animal의 sound() 호출 예정이지만
// 실제론 어떤 메서드가 실행 될지 알수 없음.
// 실행 시점: Cat의 sound() 호출