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

go语音之进阶篇接口的继承

时间:2019-01-11 11:38:25      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:变量   示例   person   str   port   highlight   ane   tmp   \n   

1、接口的继承

示例:

package main

import "fmt"

type Humaner interface { //子集
	sayhi()
}

type Personer interface { //超集
	Humaner //匿名字段,继承了sayhi()
	sing(lrc string)
}

type Student struct {
	name string
	id   int
}

//Student实现了sayhi()
func (tmp *Student) sayhi() {
	fmt.Printf("Student[%s, %d] sayhi\n", tmp.name, tmp.id)
}

func (tmp *Student) sing(lrc string) {
	fmt.Println("Student在唱着:", lrc)
}

func main() {
	//定义一个接口类型的变量
	var i Personer
	s := &Student{"mike", 666}
	i = s

	i.sayhi() //继承过来的方法
	i.sing("学生哥")
}

执行结果:

Student[mike, 666] sayhi
Student在唱着: 学生哥

  

 

go语音之进阶篇接口的继承

标签:变量   示例   person   str   port   highlight   ane   tmp   \n   

原文地址:https://www.cnblogs.com/nulige/p/10253841.html

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