首页 / GO / GO语言面向对象03---接口
GO语言面向对象03---接口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了GO语言面向对象03---接口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2250字,纯文字阅读大概需要4分钟。
内容图文
接口的实现
package main import "fmt" type Animal interface { //出生 SayHelloWord() //死亡 Godie() //生活 Live(food string) (Energy int) } type Pig struct { Name string } /*猪的指针实现了动物接口*/ //出生 func (p *Pig)SayHelloWord(){ fmt.Printf("%s哼哼哼\n",p.Name) } //死亡 func (p *Pig)Godie(){ fmt.Printf("%s啊啊啊我死了\n",p.Name) } //生活 func (p *Pig)Live(food string) (Energy int){ fmt.Printf("%s食用了一些%s,生产了%d卡路里\n",p.Name,food,1200) return 1200 } type Cat struct { Name string } /*猫的指针实现了动物接口*/ //出生 func (c *Cat)SayHelloWord(){ fmt.Printf("%s出生了\n",c.Name) } //死亡 func (c *Cat)Godie(){ fmt.Printf("%s:糟了life-=1\n",c.Name) } //生活 func (c *Cat)Live(food string)(Energy int){ fmt.Printf("铲屎官给%s大人服用了一些%s\n",c.Name,food) return 1 } func main031() { var animal Animal /*一个动物实例,既可以指向一只猪的指针,又可以指向一只猫的指针*/ //animal = &Pig{"佩奇"} animal = &Cat{"加菲"} /*无视当前的animal的具体类型,调度其动物的共性*/ animal.SayHelloWord() animal.Godie() animal.Live("饲料") } /*开一个肉联厂*/ func main() { animals := make([]Animal, 0) animals = append(animals, &Pig{"佩奇"}) animals = append(animals, &Cat{"加菲"}) for _,animal := range animals{ animal.Live("饲料") animal.Godie() } }
接口的类型断言
package main
import "fmt"
type Animal interface {
//出生
SayHelloWord()
//死亡
Godie()
//生活
Live(food string) (Energy int)
}
type Pig struct {
Name string
}
/*猪的指针实现了动物接口*/
//出生
func (p *Pig)SayHelloWord(){
fmt.Printf("%s哼哼哼\n",p.Name)
}
//死亡
func (p *Pig)Godie(){
fmt.Printf("%s啊啊啊我死了\n",p.Name)
}
//生活
func (p *Pig)Live(food string) (Energy int){
fmt.Printf("%s食用了一些%s,生产了%d卡路里\n",p.Name,food,1200)
return 1200
}
type Cat struct {
Name string
}
/*猫的指针实现了动物接口*/
//出生
func (c *Cat)SayHelloWord(){
fmt.Printf("%s出生了\n",c.Name)
}
//死亡
func (c *Cat)Godie(){
fmt.Printf("%s:糟了life-=1\n",c.Name)
}
//生活
func (c *Cat)Live(food string)(Energy int){
fmt.Printf("铲屎官给%s大人服用了一些%s\n",c.Name,food)
return 1
}
func main031() {
var animal Animal
/*一个动物实例,既可以指向一只猪的指针,又可以指向一只猫的指针*/
//animal = &Pig{"佩奇"}
animal = &Cat{"加菲"}
/*无视当前的animal的具体类型,调度其动物的共性*/
animal.SayHelloWord()
animal.Godie()
animal.Live("饲料")
}
/*开一个肉联厂*/
func main() {
animals := make([]Animal, 0)
animals = append(animals, &Pig{"佩奇"})
animals = append(animals, &Cat{"加菲"})
for _,animal := range animals{
animal.Live("饲料")
animal.Godie()
}
}
原文:https://www.cnblogs.com/yunweiqiang/p/11901923.html
内容总结
以上是互联网集市为您收集整理的GO语言面向对象03---接口全部内容,希望文章能够帮你解决GO语言面向对象03---接口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。