標籤:Golan wim fish func 繼承 通過 介面 動物 play
GoLang的物件導向
通過golang實現物件導向的過程, 以及golang的繼承關係
定義了動物, 定義了鳥類,魚類, 最後的對象是 燕子, Nimo
package mainimport "fmt"type Animal interface { Eat() Play()}type animal struct { name string}type Bird interface { Animal //匿名嵌入介面 Fly()}type bird struct { animal //匿名嵌入繼承父親的name wings int}type Fish interface { Animal Swim()}type fish struct { animal //整合父親的name name string fin int}func (a *animal) Eat() { fmt.Println(a.name, "is eatting now")}func (a *animal) Play() { fmt.Println(a.name, "is playing now")}func (b *bird) Fly() { fmt.Println(b.name, "is flying now")}func (b *bird) Eat() { // 重寫了父親的吃的方法 fmt.Println(b.name, "is eatting too much")}func (f *fish) Swim() { fmt.Println(f.name, "is swimming now")}func (f *fish) Eat() { fmt.Println(f.name, "is etting now")}func main() { fmt.Println("hello golang oo") bird := bird{animal{"swallow"}, 2} bird.Fly() // bird的特有方法, "swallow is flying now" bird.Eat() //重寫了父親的方法, "swallow is eatting too much" fish := fish{animal{"Clown Fish"}, "Nimo", 3} fish.Play() // 繼承父親的方法, "Clown Fish is playing now", 父親的name fish.Eat() // 重寫父親的方法, "Nimo is etting", 用父親的name fish.Swim() // fish 特有的方法 "Nimo is swimming now";}
golang的物件導向實現