上級 › 埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる › パターン4
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる
構造体に別の構造体を埋め込むと、埋め込み側のメソッドが昇格して呼び出せるようになります。
1 package main 2 3 import "fmt" 4 5 type Employee struct{} 6 7 func (e Employee) Role() string { return "staff" } 8 9 type Manager struct{ Employee } 10 11 func (m Manager) Role() string { return "manager" } 12 13 func main() { 14 m := Manager{} 15 fmt.Println(__________________________) ^ 16 }
出力: staff
空欄を埋めて実行を通す
外側の型が同名メソッドを再定義した時点で、そのメソッドを呼ぶ通常の経路はm.Role()だけで十分です。
次の問題