Product Design, Manufacturing & Innovation Resources
» 상속 (객체지향 프로그래밍)

상속 (객체지향 프로그래밍)

1967
  • Kristen Nygaard
  • Ole-Johan Dahl
현대 사무실에서 프로그래머가 객체 지향 프로그래밍에서 상속을 코딩하는 방법.

(설명을 위한 생성된 이미지입니다)

상속은 메커니즘입니다. OOP 새로운 클래스(하위 클래스 또는 파생 클래스)는 기존 클래스(상위 클래스 또는 기본 클래스)를 기반으로 하며, 상위 클래스의 속성과 메서드를 상속받습니다. 이는 코드 재사용성을 높이고 클래스 간의 자연스러운 계층 구조를 확립합니다. 하위 클래스는 상속받은 동작을 확장하거나 재정의하여 공통 인터페이스를 유지하면서 보다 구체적인 구현을 가능하게 합니다.

상속은 클래스 간의 'is-a' 관계를 가능하게 합니다. 예를 들어, '개'는 '동물'의 한 유형입니다. 이 경우 '동물'은 상위 클래스로, '나이'와 '먹다(eat())'와 같은 일반적인 속성과 메서드를 포함합니다. '개' 클래스는 하위 클래스로, 이러한 속성을 상속받고 '품종'과 '짖다(bark())'와 같은 자체적인 속성을 추가합니다. 이렇게 하면 공통 로직이 상위 클래스에 한 번만 정의되고 모든 하위 클래스에서 재사용되므로 코드 중복을 방지할 수 있습니다. 상위 클래스에 대한 변경 사항은 모든 하위 클래스에 자동으로 전파되어 유지 관리가 간편해집니다.

상속에는 단일 상속(클래스가 하나의 상위 클래스만 상속받는 경우), 다중 상속(클래스가 둘 이상의 상위 클래스를 상속받는 경우), 다단계 상속(클래스가 다른 클래스(그 클래스 자체가 하위 클래스인 경우)를 상속받는 경우) 등 여러 유형이 있습니다. 상속은 강력한 기능이지만, 상위 클래스와 하위 클래스 간의 복잡성과 강한 결합을 초래할 수도 있습니다. 과도한 사용은 이해하고 유지 관리하기 어려운 깊고 복잡한 계층 구조로 이어질 수 있습니다. 현대적인 설계에서는 상속보다는 컴포지션을 선호하는 경향이 있는데, 이는 객체가 다른 객체의 인스턴스를 포함하여 코드 재사용을 달성하고 '~을 가지고 있다'는 관계를 나타내는 방식입니다.

UNESCO Nomenclature: 1203
컴퓨터 과학

유형

추상 시스템

분열

실질적인

용법

널리 사용됨

전구체

  • 생물학과 철학에서 계층적 분류의 개념
  • 다른 데이터 구조를 포함할 수 있는 데이터 구조
  • 대규모 소프트웨어 시스템에서 코드 재사용의 필요성
  • Simula 언어의 설계는 클래스와 상속을 도입했습니다.

응용 프로그램

  • gui widget toolkits (e.g., a ‘button’ class inheriting from a ‘control’ class)
  • 웹 개발 프레임워크 (예: 기본 컨트롤러를 상속받는 컨트롤러 클래스)
  • game development (e.g., ‘orc’ and ‘elf’ classes inheriting from a ‘character’ class)
  • 생물학적 분류 모델링
  • 프로그래밍 언어에서 특수 예외 유형 생성

특허:

NA

잠재적 혁신 아이디어

현재 하루 4만 건이 넘는 봇 트래픽을 차단하기 위해 이 콘텐츠는 커뮤니티 회원만 이용할 수 있습니다.
> 로그인 < 또는 >등록 < 이 콘텐츠를 비롯한 모든 제한된 콘텐츠와 도구는 (100% 무료로) 이용할 수 있습니다.

관련 개념: 상속, 서브클래스, 슈퍼클래스, 파생 클래스, 기본 클래스, 코드 재사용, 계층 구조, is-a 관계, 다형성, 오버라이딩.

역사적 맥락

상속 (객체지향 프로그래밍)

1953
1960
1960
1967
1970
1970
1970
1952
1956
1960
1967
1967
1970
1970
1970

(날짜를 알 수 없거나 관련이 없는 경우, 예를 들어 "유체역학"의 경우, 주목할 만한 등장 시기를 대략적으로 추정하여 제공합니다.)

관련 발명, 혁신 및 기술 원칙

고화질 이미지 및 다운로드는 등록된 회원에게만 100% 무료로 제공됩니다.

> 로그인 <