Polymorphism

Dmitry Klokov·2021년 1월 11일
0

JAVA

목록 보기
5/13
post-thumbnail

Usage

What is Polymorphism?

tiger, lion 객체는 각각 :

  • Tiger, Lion 클래스의 객체이면서,

  • Animal 클래스의 객체이기도 하고,

  • Barakble, Predator 인터페이스의 객체이기도 하다.

이러한 이유로 barkAnimal메소드의 입력 자료형을 Animal에서 Barkable로 바꾸어 사용할 수 있는 것이다.

이렇게 하나의 객체가 여러개의 자료형 타입을 가질 수 있는 것을 다형성, 폴리모피즘(Polymorphism)이라고 부른다.

See More

Tiger 클래스의 객체는 다음과 같이 여러가지 자료형으로 표현할 수 있다.

Tiger tiger = new Tiger();
Animal animal = new Tiger();
Predator predator = new Tiger();
Barkable barkable = new Tiger();

여기서 알아두어야 할 사항은 Predator로 선언된 predator 객체와 Barkable로 선언된 barkable 객체는 사용할 수 있는 메소드가 서로 다르다는 점이다. predator 객체는 getFood() 메소드가 선언된 Predator 인터페이스의 객체이므로 getFood() 메소드만 호출이 가능하다. 이와 마찬가지로 Barkable 로 선언된 barkable 객체는 bark() 메소드만 호출이 가능하다.

만약 tiger 객체에서 getFood, bark 둘 다 사용하고 싶다면 어떻게 해야 할까?

  • Predator, Barkable 인터페이스를 구현한 Tiger로 선언된 tiger 객체를 사용하거나,

  • 다음과 같이 getFood, bark 메소드를 모두 포함하는 새로운 인터페이스를 새로 만들어 사용하면 된다.

profile
Power Weekend

0개의 댓글