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 中国語 Web サイトの他の関連記事を参照してください。