Go语言的多态(Polymorphism)
生活随笔
收集整理的這篇文章主要介紹了
Go语言的多态(Polymorphism)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Go的多態(tài)(Polymorphism) 是怎么實現(xiàn)的?
這幾天查資料下面的代碼寫的很容易看懂。
看代碼吧。不多解釋了.
package mainimport "fmt"type AnimalIF interface {Sleep()Age() intType() string } type Animal struct {MaxAge int }/*=======================================================*/type Cat struct {Animal Animal }func (this *Cat) Sleep() {fmt.Println("Cat need sleep") } func (this *Cat) Age() int {return this.Animal.MaxAge } func (this *Cat) Type() string {return "Cat" }/*=======================================================*/type Dog struct {Animal Animal }func (this *Dog) Sleep() {fmt.Println("Dog need sleep") } func (this *Dog) Age() int {return this.Animal.MaxAge } func (this *Dog) Type() string {return "Dog" }/*=======================================================*/func Factory(name string) AnimalIF {switch name {case "dog":return &Dog{Animal{MaxAge: 20}}case "cat":return &Cat{Animal{MaxAge: 10}}default:panic("No such animal")} }/*======================================================*/func main() {animal := Factory("dog")animal.Sleep()fmt.Printf("%s max age is: %d", animal.Type(), animal.Age()) } > Output: Dog need sleep Dog max age is: 20?
轉(zhuǎn)載于:https://www.cnblogs.com/li-mingxie/p/6928557.html
總結(jié)
以上是生活随笔為你收集整理的Go语言的多态(Polymorphism)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php入门02-数组
- 下一篇: Linux下载安装一个源码包