上級 › 埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる › パターン5
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる
構造体に別の構造体を埋め込むと、埋め込み側のメソッドが昇格して呼び出せるようになります。
1 package main 2 3 import "fmt" 4 5 type Instrument struct{} 6 7 func (i Instrument) Play() string { return "..." } 8 9 type Piano struct{ Instrument } 10 11 func (p Piano) Play() string { return "plink" } 12 13 func main() { 14 p := Piano{} 15 fmt.Println(______________________________) ^ 16 }
出力: ...
空欄を埋めて実行を通す
フィールド名を経由した呼び出しは、埋め込み側の実装をピンポイントで呼びたい特殊なケース以外では不要です。
次の問題