golang多态

Golang中接口和继承的区别

  1. 继承的主要价值在于:解决代码的复用性和可维护性;接口的主要价值在于:设计好的规范(方法),让其他自定义类型去实现这些方法。
  2. 接口比继承更加灵活,继承是 is-a 的关系,而接口是 like-a 的关系。
  3. 接口在一定程度上实现了代码的解耦。

package main

 

import "fmt"

 

/*******go语言中的继承和多态*******/

//Monkey 结构体

type Monkey struct {

        Name string

}

 

//声明接口

type BirdAble interface {

        Flying()

}

type FishAble interface {

        Swiming()

}

 

func (this *Monkey) climing() {

        fmt.Println(this.Name, "会爬树")

}

 

//littleMokey结构体

type LittleMonkey struct {

        Monkey

}

 

func (this *LittleMonkey) Flying() {

        fmt.Println(this.Name, "学习 飞翔!\n")

}

 

//让LittleMonkey实现FishAble

func (this *LittleMonkey) swimming() {

        fmt.Println(this.Name, "学习 游泳....!\n")

}

func main() {

        //创建一个LittleMonkey实例

        monkey := LittleMonkey{

                Monkey{

                        Name: "悟空",

                },

        }

        monkey.climing()

        monkey.Flying()

        monkey.swimming()

}

输出结果:

悟空 会爬树

悟空 学习 飞翔!

悟空 学习  游泳....!

 

你可能感兴趣的:(galang开发)