package main import "fmt" type vehicle struct { name string } func (v vehicle) describe() { fmt.Printf("%s is a vehicle.\n", v.name) } type car struct { vehicle } func (c car) describe() { fmt.Printf("%s is a car.\n", c.name) } func main() { cart := vehicle{name: "Cart"} beetle := car{vehicle: vehicle{name: "Beetle"}} cart.describe() // Cart is a vehicle. beetle.describe() // Beetle is a car. }