[Item18] extends 멈춰
자바에서 extends를 이용해 상위 클래스를 상속 받으면 코드 복붙이 필요 없다 상위 클래스의 private 변수, 메서드를 제외한 모든 속성을 내려주기 때문이다 이런 편리함을 제공하는데도 상속 보다는 합성을 이용하란다, 왜일까? 어허어허, 구현 상속은 캡슐화를 깨트려서고만 protected는 내부 구현을 감춰뒀다는 환상을 준다고라 캡슐화의 핵심은 이전에 제공했던 public interface 대로 동작만 가능하면 아무 걱정 없게 해주기 때문이구만 만약 변경이 필요하면 인터페이스를 구현한 클래스에서만 신경 써주면 되니까 편하겠구먼 그런데 상속을 사용해 protected로 내려주면 상속 받은 녀석들까지 모두 신경 써야 하니까 귀찮아지고 이는 캡슐화가 깨졌음을 의미하는 것이로구나 OOP에서 복잡성을 관리하..
Java/Effective Java
2022. 2. 24. 21:09