golang的面向对象实现

GoLang的面向对象

通过golang实现面向对象的过程, 以及golang的继承关系

定义了动物, 定义了鸟类,鱼类, 最后的对象是 燕子, Nimo

package main

import "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";
}

转载于:https://www.cnblogs.com/gpan/p/9860586.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值