Golang之繼承,多重繼承(struct)
阿新 • • 發佈:2018-01-10
running 結構體 ring style gpo nbsp 結構 繼承 port
熱乎的代碼來了
package main import "fmt" /* 繼承 一個結構體嵌到另一個結構體,稱作組合 匿名和組合的區別 如果一個struct嵌套了另一個匿名結構體,那麽這個結構可以直接訪問匿名結構體的方法,從而實現繼承 如果一個struct嵌套了另一個【有名】的結構體,那麽這個模式叫做組合 如果一個struct嵌套了多個匿名結構體,那麽這個結構可以直接訪問多個匿名結構體的方法,從而實現多重繼承 */ type Car struct { weight int name string } func (p *Car) Run() { fmt.Println("running") } type Bike struct { Car lunzi int } type Train struct { Car } func (p *Train) String() string { str := fmt.Sprintf("name=[%s] weight=[%d]", p.name, p.weight) return str } func main() { var a Bike a.weight = 100 a.name = "bike" a.lunzi= 2 fmt.Println(a) a.Run() var b Train b.weight = 100 b.name = "train" b.Run() fmt.Printf("%s", &b) }
Golang之繼承,多重繼承(struct)