[Java] 다형성, 컴포지션, DI - 세 개념을 한 줄로 잇기
·
Java
다형성을 학습하다가 Effective Java의 "상속보다는 컴포지션을 사용하라"는 문장이 떠올랐다. 그 과정에서 implements와 컴포지션의 관계가 머릿속에서 명확히 정리되지 않아 개념을 다시 정리해본다.다형성이란다형성(polymorphism)은 같은 메소드 호출이 실제 객체에 따라 다르게 동작하는 성질이다.Payment payment = new KakaoPayment();payment.pay(1000);위 코드에서 변수 타입은 Payment지만, 실제 실행되는 것은 KakaoPayment.pay()다. 즉 다형성의 핵심은부모 타입(인터페이스/상위 클래스)으로 객체를 다룰 수 있고실제 어떤 구현이 실행될지는 런타임에 결정된다는 점이다.왜 필요한가 - 결제 예시다형성이 없는 코드public class..