Go 物件導向 六) 綜合例項(一)

2021-10-20 14:25:05 字數 1480 閱讀 1444

package main

import

("fmt"

"math/rand"

"time")/*

定義動物介面:死、活著

定義動物實現類:鳥、魚、野獸(跑、捕食)

繼承野獸:實現老虎、實現人

業務場景:工作日所有動物都活著、週末人出來捕食、野獸逃跑

其他動物死光光

*/type animal inte***ce

type bird struct

func

(b *bird)

live()

func

(b *bird)

godie()

type fish struct

func

(f *fish)

live()

func

(f *fish)

godie()

type beast struct

func

(b *beast)

live()

func

(b *beast)

godie()

func

(b *beast)

run(

)func

(b *beast)

hunt()

type tiger struct

func

(b *tiger)

hunt()

type human struct

func

(b *human)

hunt()

func

(b *human)

live()

func

main()

fish := fish

tiger := tiger

} human := human

}//建立地球家園

animals :=

make([

]animal,0)

animals =

(animals,

&bird)

animals =

(animals,

&fish)

animals =

(animals,

&tiger)

animals =

(animals,

&human)

r := rand.

new(rand.

newsource

(time.

now().

unixnano()

))weekday := r.

intn(7

) fmt.

printf

("今天是禮拜%d.\n"

,weekday)

if weekday>

0&& weekday<6}

else}}

}

go 物件導向

在前面博文我們有記錄函式與struct型別的使用,那你是否有想過把函式當做struct字段一樣來處理呢?接下來,將記錄一下函式的另一種形態,帶有接收者的函式,我們稱之為method,即方法 在物件導向程式設計中,乙個物件其實也就是乙個簡單的值或者乙個變數,在這個物件中會包含一些函式,這種帶有接收者的...

go物件導向

把一類事物的共有的屬性 字段 和行為 方法 提取出來,形成乙個物理模型 結構體 這種研究問題的方法稱為抽象 封裝 encapsulation 就是把抽象出的字段和對字段的操作封裝在一起,資料被保護在內部,程式的其它包只有通過被授權的操作 方法 才能對欄位進行操作 封裝的好處 1 隱藏實現細節 2 可...

go語言物件導向

go語言可通過struct宣告新的型別 新建乙個型別person type person struct var p1 person p1.name liming p1.age 18新建乙個型別student,可以通過匿名欄位將person所有欄位隱式引入student type student st...