object-oriented programming

[객체지향 프로그래밍] 상속이란?

leo_roh 2023. 12. 7. 22:47

상속 Inheritance

한줄 요약 : 상속이란 이미 존재하는 클래스를 기반으로 새 클래스를 만드는 방법이다.

 

 

상속은 이미 잘 개발 된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄여 개발 시간을 단축 시킬 수 있다. 

 

상속에 대한 비판

이미 테스트까지 끝낸 부모 클래스를 다시 테스트 할 필요가 없다는 주장도 있지만 상속 받은 자식 클래스에서 부모 클래스를 다른 방식으로 사용하며 버그가 일어날 수도 있다. 

 

특히, 하위 클래스 구현시 상위 클래스의 내부 구현을 알아야한다는 점에서 캡슐화를 깬다. 이를 방지하기 위해 자식 클래스에게도 공개하지 않도록 private 접근 지정자를 지원한다. 따라서 protected를 남발하기보단 필요한 곳에만 사용할 필요가 있다.

 

자식 클래스는 부모 클래스에 크게 의존한다. 즉, 결합도가 크게 늘어난다. 이 때문에 오히려 재사용성이 저해되는 상황이 생긴다.