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...