多态
package main
import "fmt"
type Usb interface {
Work()
Stop()
}
type Carme struct {
Name string
}
type Phone struct {
Name string
}
func (c *Carme) Work() {
fmt.Println("Carme 开始工作了")
}
func (c *Carme)Stop() {
fmt.Println("Carme 停止工作了")
}
func (c *Phone) Work() {
fmt.Println("Carme 开始工作了")
}
func (c *Phone)Stop() {
fmt.Println("Carme 停止工作了")
}
type Computer struct {
Name string
}
func (c *Computer) Work(usb Usb) {
fmt.Println("Carme 开始工作了")
}
// 1多态体现 , 参数多态
func (c *Computer)Stop(usb Usb) {
fmt.Println("Carme 停止工作了")
}
func main() {
// 2多态体现 , 数组多态
var arrayUsb [3] Usb
var c Carme
var p Phone
var co Computer
c.Name = "Nikang"
p.Name = "One+7"
co.Name ="Dell"
arrayUsb = [3] Usb {&c,&p,&p}
for i ,v := range arrayUsb{
fmt.Println(i,v)
}
for i:=0;i<len(arrayUsb) ;i++ {
fmt.Println(arrayUsb[i])
}
}