728x90
참고 링크
https://okky.kr/article/546389
OKKY | ArrayList를 사용할 때 레퍼런스 변수를 List 타입으로 만드는 이유가 궁금합니다.
안녕하세요. 1년차 새내기 개발자입니다. 회사에서 자바를 사용하는데, 제가 써 본 적이 없어서 처음부터 공부하는 중입니다. List String list new ArrayList String (); 공부하면서 예제를 보니 위와 같은
okky.kr
Collection이나 Class를 공부하면서, 객체를 참조할 때 그 클래스가 아닌 인터페이스를 참조하는 경우가 많음을 알게 되었다.
그냥 인스턴스의 클래스를 참조하면 될 것 같은데 왜 인터페이스를 사용하는지 궁금해서 찾아보았다.
- 형태 변형이 자유롭다
List 인터페이스에 있는 ArrayList, LinkedList 등을 사용할 때, 참조변수를 각각의 클래스로 한다면 수정이나 변형이 어렵다. 그러나 List 인터페이스로 참조한다면 이후 수정이 용이하다.
- 각 클래스에만 있는 고유한 메소드를 사용하려면 그 클래스를 참조해야 하지만, 자주 사용하는 Collection의 메소드는 인터페이스에도 구현되어 있다.
ArrayList의 경우에도 주요 메서드들은 List에 구현되어 있다.
List<String> list = new ArrayList<>();
위 방식대로 list를 만들고 자동완성 기능을 사용하였을 때, 주요 메소드들은 모두 List 인터페이스에 구현되어있음을 알 수 있다.
결국 유연한 개발을 위해 인터페이스를 참조하는 것이 좋다
728x90
'Java' 카테고리의 다른 글
[자바/Java] 예외 처리 (Exception) (0) | 2022.07.28 |
---|---|
[자바/Java] 직렬화와 역직렬화, ObjectInputStream ObjectOutputStream, Serializable (0) | 2022.07.28 |
[자바/Java] 제네릭 Generics (0) | 2022.07.27 |
[자바/Java] 클래스 다형성(Polymorphism) (0) | 2022.07.25 |
[자바/Java] 클래스(Class), 상속, 생성자(Constructor), 오버라이딩(Override) (0) | 2022.07.25 |