golang的物件導向實現

來源:互聯網
上載者:User

標籤: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的物件導向實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.