다형성이란 한 행동을 여러 방법으로 구현하고 상황에 따라 적당한 구현을 선택해서 사용할 수 있는 객체지향 패러다임의 특성으로서
예컨대 다음과 같이
class Person { ... }
class PersonContainer {
List<Person> persons;
public PersonContainer(List<Person> persons) {
this.persons = persons;
}
public void add(Person person) {
persons.add(person);
}
}
class Main {
public static void main(String[] args) {
PersonContainer arrContainer = new PersonContainer(new ArrayList<Person>());
PersonContainer linkedContainer = new PersonContainer(new LinkedList<Person>());
arrContainer.add(...);
linkedContainer.add(...);
}
}
같은 List 인터페이스를 구현한 ArrayList와 LinkedList 각각 구현한 add 메소드를 각각의 방식에 따라 선택하여 사용할 수 있는 경우를 다형성이 구현됐다고 할 수 잇는 건가요?
- dc official App
인터페이스를 통한 다형성이 흔한 다형성 구현 중 하나 맞지
이건 업스케일에 관한 다형성이라고 봐야 하나
옹 - dc App
다형성은 꼭 객져 아니라도 가능하다고 생각함. 그런 관점에서 보자면 어떤 인터페이스를 정해두고, 그걸 만족하지만 다른 작업을 수행할 수 있는 기능을 "미래에 추가"할 수 있다면 다형성이라고 해도 될거 같음. 다형성을 쓰는 이유도 그거고.
ㅇㅇ 인자로 그 하위 형은 다 들어갈수잇슴