Java 상속과 다형성 정리

객체지향 프로그래밍(OOP)의 진정한 힘은 코드의 단순 재사용을 넘어선 ‘유연성’에 있다.

그 유연성을 지탱하는 두 기둥인 상속과 다형성의 메커니즘을 분석한다.

상속 (Inheritance): 구조적 확장

기존 클래스(부모)의 속성과 기능을 물려받아 새로운 클래스(자식)를 구축한다.

“is-a” 관계를 통해 논리적인 계층 구조를 형성하고 중복 코드를 제거한다.

다형성 (Polymorphism): 유연한 인터페이스

하나의 타입으로 다양한 객체를 제어할 수 있는 능력이다.

자바에서는 부모 타입 참조 변수로 실제 자식 객체의 오버라이딩된 메서드를 호출함으로써 구현된다.

Animal animal = new Dog(); // 부모 타입으로 자식 참조
animal.sound(); // 실행 시점에 객체 타입에 맞는 메서드 호출 (Dynamic Binding)

설계적 가치

  • 유지보수성: 공통 로직을 한 곳에서 관리하여 수정을 용이하게 한다.
  • 확장성 (OCP): 기존 코드를 수정하지 않고도 새로운 기능을 클래스 단위로 추가할 수 있다.
  • 결합도 완화: 구체적인 구현보다 추상적인 인터페이스에 의존하게 만든다.

P.S

상속과 다형성은 복잡한 시스템을 관리 가능한 단위로 나누고 연결하는 핵심 기술이다.

객체 간의 협력 관계를 우아하게 설계하는 능력이 소프트웨어의 품질을 결정하는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts