피드로 돌아가기
Mastering the "super" Keyword in Java: A Beginner’s Guide
Dev.toDev.to
Backend

코드 중복 제거와 객체 지향 설계의 핵심, Java super 키워드 완전 정복

Mastering the "super" Keyword in Java: A Beginner’s Guide

realNameHidden2026년 4월 4일4beginner

Context

상속 구조에서 부모 클래스의 로직을 반복 작성하는 코드 중복 문제 발생. 자식 클래스에서 메서드를 재정의할 때 부모의 기존 기능을 유지하며 확장하기 어려운 구조적 한계 존재.

Technical Solution

  • 부모 클래스 객체를 참조하는 super 키워드를 통해 상속 관계의 논리적 연결 통로 확보
  • super()를 생성자 첫 줄에 배치하여 부모 클래스의 초기화 로직을 선행 수행하는 Constructor Chaining 구현
  • super.methodName() 호출 방식으로 오버라이딩된 메서드 내에서 부모의 원본 로직을 선택적으로 실행하는 확장 설계
  • 부모 클래스의 필드에 직접 접근하는 대신 메서드를 통한 접근을 권장하여 캡슐화 원칙 준수
  • 상속 계층을 단순하게 유지하여 과도한 super 참조로 인한 복잡도 증가 방지

Key Takeaway

재사용성과 확장성을 동시에 확보하기 위해 부모의 기능을 완전히 대체하는 것이 아니라 보완하는 방향의 설계 원칙 필요.


생성자 내 super() 호출은 반드시 첫 번째 문장으로 배치하고, 필드 직접 참조보다 super 메서드 호출을 우선할 것

원문 읽기