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

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

1967
  • Kristen Nygaard
  • Ole-Johan Dahl
Programmer coding inheritance in object-oriented programming at a modern office.

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

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

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

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

UNESCO Nomenclature: 1203
컴퓨터 과학

유형

추상 시스템

분열

실질적인

용법

널리 사용됨

전구체

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

응용 프로그램

  • GUI 위젯 툴킷(예: '컨트롤' 클래스를 상속받는 '버튼' 클래스)
  • 웹 개발 프레임워크 (예: 기본 컨트롤러를 상속받는 컨트롤러 클래스)
  • game development (e.g., ‘orc’ and ‘elf’ classes inheriting from a ‘character’ class)
  • 생물학적 분류 모델링
  • creating specialized exception types in programming languages

특허:

NA

잠재적 혁신 아이디어

  • extensible plugin architectures for software like wordpress or vscode
  • customizable 사용자 인터페이스 themes in operating systems
  • transfer learning in neural networks where a base model is extended for a new task
  • versioning systems for software components using class hierarchies
  • generic data access layers that can be specialized for different databases (e.g., sql, nosql)
  • component-based entity systems in game engines
  • layered security protocols inheriting from a base protocol standard
  • extensible financial modeling frameworks
  • customizable robot behaviors inheriting from a base robotics platform
  • domain-specific languages (dsls) built by extending a core language grammar
관련 개념: 상속, 서브클래스, 슈퍼클래스, 파생 클래스, 기본 클래스, 코드 재사용, 계층 구조, is-a 관계, 다형성, 오버라이딩.

역사적 맥락

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

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

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

10년차 기념일

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

> 로그인 <