Golang 메소드 오버라이딩
Go에서 메소드 오버라이딩의 개념은 Java처럼 상속을 통하지 않고 인터페이스를 사용하여 달성됩니다. 인터페이스는 구현을 지정하지 않고 메서드 계약을 정의합니다.
Go에서 메서드 재정의 구현:
인터페이스 사용:
예:
// Interface for Get() method type Getter interface { Get() string } // Base type with original implementation type Base struct{} func (base *Base) Get() string { return "base" } // Custom type with overriding implementation type Sub struct { Base } func (sub *Sub) Get() string { return "Sub" }
장점:
컴포지션을 사용한 대체 접근 방식:
예:
// Sub type with composition type Sub struct { Base custom string } func (sub *Sub) Get() string { // Access the original method via embedded Base if sub.custom == "" { return sub.Base.Get() } return sub.custom }
장점:
참고:
위 내용은 Go는 전통적인 상속 없이 메소드 재정의를 어떻게 달성하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!