【golang笔记】go_继承和接口相互关系(16)

Page content

这一篇文章简答的介绍了继承和接口之间的关系,以及特点。

继承的作用是复用代码

接口的作用是代码规范

看下面的例子,猴子可以爬树,所以小猴子需要继承猴子,继承了爬树的继承。
(复用代码,以后猴子都可以爬树) 但是飞翔和,游泳是使用接口方式实现的。
(代码规范,以后飞翔和游泳是以这种方式实现。)

package main
import (
 "fmt"
)

//Monkey结构体
type Monkey struct {
 Name string
}

//声明接口
type BirdAble interface {
 Flying()
}

type FishAble interface {
 Swimming()
}

func (this *Monkey) climbing() {
 fmt.Println(this.Name, " 生来会爬树..")
}

//LittleMonkey结构体
type LittleMonkey struct {
 Monkey //继承
}


//让LittleMonkey实现BirdAble
func (this *LittleMonkey) Flying() {
 fmt.Println(this.Name, " 通过学习,会飞翔...")
}

//让LittleMonkey实现FishAble
func (this *LittleMonkey) Swimming() {
 fmt.Println(this.Name, " 通过学习,会游泳..")
}

func main() {

 //创建一个LittleMonkey 实例
 monkey := LittleMonkey{
  Monkey {
   Name : "悟空",
  },
 }
 monkey.climbing()
 monkey.Flying()
 monkey.Swimming()

}

欢迎大家的意见和交流

email: li_mingxie@163.com