객체지향 프로그래밍(OOP)의 유연성과 확장성을 지탱하는 두 기둥인 상속과 다형성의 메커니즘을 분석하고 실무 적용 방안을 정리했다.
코드의 재사용성을 높으면서도 변화에 유연하게 대응할 수 있는 객체 간의 논리적인 계층 구조를 설계하는 데 주력했다.
기존 클래스의 속성과 기능을 물려받아 새로운 클래스를 구축하는 상속을 통해 “is-a 관계”를 정립하고 중복 코드를 획기적으로 제거했다.
하나의 타입으로 다양한 객체를 제어할 수 있는 다형성의 위력을 실감하며 부모 타입 참조 변수로 자식 객체의 오버라이딩된 메서드를 호출하는 실습을 진행했다.
실행 시점에 실제 객체의 타입에 맞춰 동작이 결정되는 동적 바인딩 과정을 통해 코드의 유연성이 어떻게 확보되는지 명확히 이해했다.
공통 로직을 상위 계층으로 통합하여 유지보수 지점을 단일화하고 기존 코드의 수정 없이도 기능을 확장할 수 있는 개방-폐쇄 원칙의 실질적인 구현 사례를 확인했다.
상속과 다형성은 복잡한 시스템을 관리 가능한 단위로 나누고 연결하는 핵심 기술이며 이를 우아하게 설계하는 능력이 소프트웨어 품질의 척도임을 깨달았다.
객체 간의 건강한 협력 관계를 설계하기 위해 추상화된 인터페이스에 의존하는 습관을 들이고 결합도를 낮추는 데 집중했다.
객체지향의 본질을 꿰뚫는 정교한 설계를 통해 어떠한 변화에도 흔들리지 않는 견고한 소프트웨어 아키텍처를 구축했다.
추상적인 개념이 실제 코드로 구현되어 강력한 힘을 발휘하는 과정을 목격하며 개발자로서의 큰 성장을 느꼈다.
다양한 자식 객체들이 부모의 이름 아래 각자의 개성을 발휘하는 유연한 코드를 완성했다.