码迷,mamicode.com
首页 > 其他好文 > 详细

Go接口和继承

时间:2020-01-26 10:21:29      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:alt   声明   inf   int   imm   type   height   pack   key   

1. 继承和接口

技术图片

package main

import (
	"fmt"
)

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

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

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

type FishAble interface {
	Swimming()
}

//小猴子结构体
type LittleMonkey struct {
	Monkey //继承猴子
}
//实现接口-->在不破坏继承的关系的基础上对结构体进行功能的扩展
//让小猴子实现Flying()
func (this *LittleMonkey) Flying() {
	fmt.Println(this.Name, " 通过学习,会飞翔...")
}

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

func main() {

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

}

总结:

技术图片

 

2. 接口是对继承的补充(接口具有规范性)

 技术图片

3. 继承和接口的区别

技术图片

 

Go接口和继承

标签:alt   声明   inf   int   imm   type   height   pack   key   

原文地址:https://www.cnblogs.com/yzg-14/p/12233696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!