다형성이란 한가지 타입이 여러 가지 형태의 인스턴스를 가질 수 있는 것입니다. 부모 타입 변수에 모든 자식 인스턴스들이 대입될 수 있습니다.
class Animal {
void breath() {
System.out.println("숨쉬기");
}
}
class Rabbit extends Animal { //Animal 클래스를 상속한 Rabbit 클래스
public String toString() {
return "토끼";
}
}
class Monkey extends Animal { // Animal 클래스를 상속한 Monkey 클래스
public String toString() {
return "원숭이";
}
}
class Lion extends Animal { // Animal 클래스를 상속한 Lion 클래스
public String toString() {
return "사자";
}
}
class ZooKeeper { // ZooKeeper 클래스
void feed(Animal animal) {
System.out.println(animal + "에게 먹이 주기");
}
}
public class Polymorphism3 {
public static void main(String[] args) {
/* Lion lion1 = new Lion();
ZooKeeper james = new ZooKeeper();
james.feed(lion1); */
Animal lion1 = new Lion(); // Animal 클래스 참조변수에 Lion클래스 주소참조
ZooKeeper james = new ZooKeeper();
james.feed(lion1);
Animal rabbit1 = new Rabbit(); // Animal 클래스 참조변수에 Rabbit클래스 주소참조
james.feed(rabbit1);
Animal monkey1 = new Monkey(); // Animal 클래스 참조변수에 Monkey클래스 주소참조
james.feed(monkey1);
}
}