上級 › 埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる › パターン2
埋め込み構造体のメソッドが外側の同名メソッドにシャドーイングされる
構造体に別の構造体を埋め込むと、埋め込み側のメソッドが昇格して呼び出せるようになります。
1 package main 2 3 import "fmt" 4 5 type Vehicle struct{} 6 7 func (v Vehicle) Describe() string { return "a vehicle" } 8 9 type Car struct{ Vehicle } 10 11 func (c Car) Describe() string { return "a car" } 12 13 func main() { 14 c := Car{} 15 fmt.Println(____________________________) ^ 16 }
出力: a vehicle
空欄を埋めて実行を通す
Carが自分のDescribeを持っているので、c.Describe()を呼べば意図通り「a car」が得られます。
次の問題