Java

[JAVA] 자바 - 객체 간의 상속의 의미

Seong-Jun 2025. 2. 11. 10:01
728x90
반응형
SMALL

상속

 객체지향 프로그래밍(OOP)에서는 유지보수가 편리하고, 프로그램을 수정하거나 새로운 기능을 추가하는 것이 유연하다. 이러한 특징을 가능하게 하는 핵심 기술 중 하나가 상속(Inheritance)이다.

상속이란 기존 클래스(A 클래스)의 속성과 메서드를 새로운 클래스(B 클래스)에서 물려받아 재사용하는 개념이다. 이를 통해 코드의 중복을 줄이고, 공통 기능을 한 곳에서 관리할 수 있어 유지보수성을 높일 수 있다. 또한, 부모 클래스의 기능을 확장하거나 재정의(오버라이딩)하여 유연하게 변경할 수도 있다.

  • 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현한다.
  • 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속한다.
  • 상속받은 클래스는 상위 클래스의 멤버를 자신의 멤버처럼 사용할 수 있다.
상속하는 클래스 : 상위 클래스, parent class, base class, super class
상속받는 클래스 : 하위 클래스, child class, derived class, sub class
  • 상속의 문법
class B extends A {
	...
}

 

extends 키워드 뒤에는 단 하나의 클래스만 올 수 있다.
C++ 같은 경우는 여러 개가 올 수 있는데 이러면 모호성이 발생할 수 있기 때문에
자바는 단일 상속(single inheritance)만을 지원다.

상속의 목적

☞ 클래스의 재사용성, 연관된 일련의 클래스들에 대한 공통적인 규약 정의.

상속을 구현하는 경우

  • 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가진다.
  • 하위 클래스는 상위 클래스보다 더 구체적인 개념과 기능을 가진다.
  • 하위 클래스가 상위 클래스의 속성과 기능을 확장(extends)한다는 의미다.

상속의 장점

  • 보다 적은 양의 코드로 새로운 클래스 작성가능
  • 공통적으로 코드를 관리하므로 코드의 추가 및 변경 용이
  • 중복된 코드를 제거하여 프로그램의 생산성과 유지보수에 큰 기여

상속의 특징

최상위 클래스는 Object

  • 모든 클래스는 Object 클래스의 후손이다.
  • Object 클래스가 제공하는 메서드를 오버라이딩하여 메서드 재구성 가능
  • 예를 들어 java.lang.String 클래스의 equals()와 toString()

부모 클래스의 생성자, 초기화 블록은 상속 불가

  • 자식 클래스 생성 시, 부모 클래스 생성자가 먼저 생성
  • 자식 클래스 생성자 안에서 부모 클래스 생성자 호출을 명시하고 싶을 경우 super() 활용

부모의 private 멤버는 상속되지만 직접 접근 불가

  • 자식 클래스 생성 시 부모 클래스의 멤버를 상속받는데 이때 부모 클래스에서 private으로 선언된 멤버는 직접 접근이 불가하다.
  • super()를 사용하여 전달받은 부모 필드 값을 부모 생성자 쪽으로 넘겨서 생성하거나 getter / setter를 사용하여 접근해야 한다.
728x90
반응형
LIST