우리가 흔히 ArrayList를 사용할 때
ArrayList list = new ArrayList();
로 사용할 수 있음에도 불구하고
List list = new ArrayList();
와 같이 업캐스팅하여 사용한다.
객체지향 프로그래밍을 위해 (다형성 구현)
변경에 유연한 구조로 미리 설계하기 위해
ex) List 인터페이스를 구현한 다른 자료형으로 쉽게 전환할 수 있음
... ArrayList가 아니더라도 객체는 인터페이스를 사용해서 선언하는 게 좋다.