"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go가 전통적인 상속을 지원하지 않는 이유는 무엇입니까?

Go가 전통적인 상속을 지원하지 않는 이유는 무엇입니까?

2024-11-08에 게시됨
검색:368

 Why Doesn\'t Go Support Traditional Inheritance?

Go의 상속

Go가 전통적인 유형 상속을 지원하지 않는 이유는 무엇입니까?

Traditional 하위 클래스가 하나 이상의 상위 클래스 정의를 상속하는 유형 상속은 Go 프로그래밍 언어의 기능이 아닙니다.

제작자의 원리

In the Go FAQ에서 언어 작성자는 객체 지향 프로그래밍 언어가 Go에서 자동으로 추론할 수 있는 유형 간의 관계 정의를 강조하는 경우가 많다고 설명합니다. 유형 관계를 명시적으로 지정하는 대신 Go 유형은 메소드의 하위 집합을 지정하는 모든 인터페이스를 자동으로 충족합니다.

Go 접근 방식의 이점

이 접근 방식은 다음과 같은 몇 가지 장점을 제공합니다.

  • 간소화된 장부: 유형 관계를 명시적으로 선언할 필요가 없습니다.
  • 인터페이스 유연성: 유형은 한 번에 여러 인터페이스를 만족시킬 수 있습니다. 전통적인 다중 상속의 복잡성을 피합니다.
  • 경량 인터페이스: 인터페이스는 1개 또는 0개의 메소드를 가질 수 있으므로 추가 유형 주석이 필요 없이 유용한 개념을 표현할 수 있습니다.
  • 변경에 대한 유연성: 인터페이스는 사후에 추가될 수 있어 원래 유형을 수정하지 않고도 새로운 아이디어나 테스트에 대한 유연성을 제공합니다.
  • 유형 계층 구조의 부재: 유형 간의 명시적인 관계가 부족하면 유형 계층 구조를 관리하거나 논의할 필요가 없습니다.

대체 원칙

Go는 상속보다 구성 원칙을 장려합니다. 여기에는 상속을 사용하여 상위 유형의 모든 기능을 포함하는 새 유형을 생성하는 대신 기존 유형을 구성하여 새 유형을 생성하는 작업이 포함됩니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3