Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바 다단계 상속(Multilevel Inheritance) 개념과 예제 총정리

자바의 다단계 상속(Multilevel Inheritance)은 하나의 클래스가 다른 클래스로부터 속성과 기능을 상속받고, 그 클래스가 다시 또 다른 클래스로부터 상속받는 구조를 말합니다. 즉, 조상 클래스 → 부모 클래스 → 자식 클래스처럼 상속 관계가 사슬(체인) 형태로 이어지는 상속 방식입니다.

예를 들어 ShapeRectangleCube 순서로 상속된다면, 최하위 클래스인 Cube는 자신의 멤버뿐만 아니라 상위 두 클래스의 모든 멤버도 사용할 수 있습니다.

다단계 상속 예제

아래 예제에서 Rectangle 클래스는 Shape 클래스를 상속받고, Cube 클래스는 다시 Rectangle 클래스를 상속받습니다.

class Shape {
   public void display() {
      System.out.println("Inside display");
   }
}
class Rectangle extends Shape {
   public void area() {
      System.out.println("Inside area");
   }
}
class Cube extends Rectangle {
   public void volume() {
      System.out.println("Inside volume");
   }
}
public class Tester {
   public static void main(String[] arguments) {
      Cube cube = new Cube();
      cube.display();
      cube.area();
      cube.volume();
   }
}

실행 결과

Inside display
Inside area
Inside volume

코드 설명

  • Shape 클래스: 최상위 부모 클래스로, display() 메서드를 정의합니다.
  • Rectangle 클래스: extends 키워드를 사용해 Shape를 상속하며, 고유한 메서드인 area()를 추가로 정의합니다.
  • Cube 클래스: Rectangle을 상속하며, volume() 메서드를 정의합니다. 따라서 ShapeRectangle의 모든 기능을 물려받습니다.

Tester 클래스의 main 메서드에서 Cube 객체를 생성하면, 해당 객체를 통해 세 클래스에 정의된 모든 메서드를 호출할 수 있습니다. 실행 결과에서 볼 수 있듯이 display(), area(), volume()이 순서대로 출력됩니다.

다단계 상속의 핵심 포인트

  • 자바는 클래스 간의 다중 상속은 지원하지 않지만, 다단계 상속은 문제없이 지원합니다.
  • 상속 깊이가 깊어질수록 하위 클래스는 상위 클래스의 모든 public·protected 멤버에 접근할 수 있습니다.
  • 상속 계층이 과도하게 깊어지면 코드 복잡도가 높아질 수 있으므로, 일반적으로 2~3단계 수준의 적절한 깊이를 유지하는 것이 좋습니다.