본문 바로가기

CS

상속이란

상속(Inheritance)은 객체지향 프로그래밍에서 중요한 개념 중 하나로, 클래스 간의 계층적 관계를 표현하는 메커니즘입니다. 상속은 기존 클래스의 특성(속성과 메서드)을 새로운 클래스가 재사용하거나 확장할 수 있도록 해줍니다.

기존 클래스를 부모 클래스 또는 슈퍼 클래스(superclass)라고 하고, 새롭게 생성되는 클래스를 자식 클래스 또는 서브 클래스(subclass)라고 합니다. 자식 클래스는 부모 클래스의 모든 속성과 메서드를 상속받아 사용할 수 있습니다.

 

상속의 주요 특징:

  1. 코드 재사용성(Reuse of Code):
    • 부모 클래스의 특성을 자식 클래스가 재사용할 수 있어, 코드의 중복을 피할 수 있습니다.
    • 공통된 기능이나 특성을 여러 클래스에서 사용할 때 유용합니다.
  2. 확장성(Extensibility):
    • 자식 클래스는 부모 클래스의 기능을 확장하거나 수정할 수 있습니다.
    • 새로운 속성이나 메서드를 추가하거나, 기존의 메서드를 재정의(오버라이딩)하여 새로운 동작을 정의할 수 있습니다.
  3. 계층 구조(Hierarchical Structure):
    • 상속을 통해 클래스들 사이에 계층적인 구조를 형성합니다.
    • 상위 클래스에서 정의된 특성들이 하위 클래스로 전달되어 하위 클래스들이 공통된 특성을 가질 수 있습니다.
  4. 다형성(Polymorphism):
    • 상속은 다형성을 지원합니다. 이는 부모 클래스 타입으로 선언된 변수에 자식 클래스의 객체를 할당할 수 있음을 의미합니다.
    • 이로써 동일한 메서드 호출이 다양한 형태로 동작할 수 있습니다.