GOLANG多态的简单实现

  • //多态的特征是通过接口来实现的
  • //多态形式之一:多态参数
package main
import(
	"fmt"
	_"sort"
	_"math/rand"
)
//多态的特征是通过接口来实现的
//多态形式之一:多态参数
type Usb interface{
	start()
	stop()
}

type Phone struct{
	Name string
}
type Camera struct{
	Name string
}

func (p Phone) start(){
	fmt.Println(p.Name,"开始工作了")
}
func (p Phone) stop(){
	fmt.Println(p.Name,"停止工作了")
}
func (c Camera) start(){
	fmt.Println(c.Name,"开始工作了")
}
func (c Camera) stop(){
	fmt.Println(c.Name,"停止工作了")
}
type Computer struct{
	Name string
}
func (com Computer) working(usb Usb){  //usb变量会根据传入的实际参数,来判断到底是phone还是camera
	// 通过usb接口变量来调用start和stop方法
	usb.start()
	usb.stop()
}

func main(){
	var pc Computer = Computer{"dell_R430"}
	var phone Phone = Phone{"iphone_XS"}
	var camera Camera = Camera{"TCL_2357R"}
	pc.working(phone)
	pc.working(camera)
}

代码在终端运行结果为:

 GOLANG多态的特征是通过接口来实现的 GOLANG多态形式之一:多态参数 随笔

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄