객체 지향 프로그래밍(Object Oriented Programming)5 - 다형성(Polymorphism)
2021. 10. 30. 20:36ㆍJava
다형성
하나의 객체가 많은 타입을 가질 수 있는 성질
상속 관계에 있을 때, 조상 클래스의 타입으로 자식 클래스를 레퍼런스 할 수 있다.
public class Animal{
void cry(){
System.out.print("우에에에엥");
}
}
class Tiger extends Animal{
//cry를 오버라이딩 하였다
@Override
void cry(){
System.out.println("어흥");
}
void hunt(){
System.out.print("먹잇감을 잡는다");
}
}
class Tiger extends Dog{
//cry를 오버라이딩 하였다
@Override
void cry(){
System.out.println("멍멍");
}
void catch(){
System.out.print("공을 잡는다");
}
}
호랑이는 동물이다 O
개는 동물이다 O
동물은 호랑이다, 동물은 개다 X
//다형성이 없다면 - 각각 배열을 만드러야 한다
void noPoly(){
Animal[] animals = new Animal[5];
animals[0] = new Animal();
Tiger[] tigers = new Tiger[5];
tigers[0] = new Tiger();
Dog[] dogs = new Dog[5];
dogs[0] = new Dog();
}
//다형성이 있다면 - 같은 타입의 데이터로 묶을 수 있다
void yesPoly(){
Animal[] animals = new Animal[5];
animals[0] = new Animal();
animals[1] = new Tiger();
animals[2] = new Dog();
}
출처
'Java' 카테고리의 다른 글
객체 지향 프로그래밍(Object Oriented Programming)4 - 캡슐화(Encapsulation) (0) | 2021.10.30 |
---|---|
객체 지향 프로그래밍(Object Oriented Programming)3 - 상속(Inheritance) (0) | 2021.10.30 |
객체 지향 프로그래밍(Object Oriented Programming)2 - 추상화(Abstraction) (0) | 2021.10.26 |
객체 지향 프로그래밍( Object Oriented Programming)1 (0) | 2021.10.26 |