上級 › 埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる › パターン3
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる
構造体に別の構造体を埋め込むと、埋め込み側のメソッドが昇格して呼び出せるようになります。
1 package main 2 3 import "fmt" 4 5 type Shape struct{} 6 7 func (s Shape) Name() string { return "shape" } 8 9 type Circle struct{ Shape } 10 11 func (c Circle) Name() string { return "circle" } 12 13 func main() { 14 c := Circle{} 15 fmt.Println(____________________) ^ 16 }
出力: shape
空欄を埋めて実行を通す
埋め込み側を経由して呼び出すと、外側の型が持つ独自の実装を素通りしてしまいます。
次の問題