다형성이란 한 행동을 여러 방법으로 구현하고 상황에 따라 적당한 구현을 선택해서 사용할 수 있는 객체지향 패러다임의 특성으로서
예컨대 다음과 같이

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