Go之繼承的實現

2021-09-07 02:58:47 字數 1242 閱讀 6510

go的繼承是使用匿名欄位來實現的

package util

//----------------person----------------

type person struct

//--------------------------------

//----------------boy----------------

type boy struct

//--------------------------------

//----------------girl----------------

type girl struct

//--------------------------------

//匿名字段可以實現類似繼承的效果

// boy := util.boy, "1"}

// girl := util.girl, "2"}

// fmt.println(boy)

// fmt.println(girl)

方法的重寫override通過在子類中重新定義同名函式來實現,reciever接收的是子類的例項

package util

//----------------person----------------

type person struct

func (self *person) speak() string

//--------------------------------

//----------------boy----------------

type boy struct

func (self *boy) speak() string

//--------------------------------

//----------------girl----------------

type girl struct

func (self *girl) speak() string

//--------------------------------

// 方法重寫的實現override

// boy := util.boy, "1"}

// fmt.println(boy.speak())

// girl := util.girl, "2"}

// fmt.println(girl.speak())

Go 實現介面和繼承比較

monkey結構體 type monkey struct func this monkey climbing littlemonkey結構體 type littlemonkey struct func main monkey.climbing monkey結構體 type monkey struct...

Go語言使用組合的方式實現多繼承

在大多數物件導向的程式語言中多繼承都是不支援的。因為在基於class的體系中,多繼承極大地增加了編譯器的複雜性。go語言使用組合的方式實現繼承,因此也可以很簡單的實現多繼承。使用組合的方式實現多繼承 type phone struct func p phone call string type ca...

go 語言中的繼承

go 語言中可以通過匿名field來實現繼承的效果,type t1 struct func t t1 log func t t1 print type t2 struct t2 t2 可以通過t2.log 直接訪問t1的method,就像物件導向的繼承之後一樣訪問,不過這裡要注意的傳遞到log的是t...