Go 接口
package main
import "fmt"
func main() {
m1 := Mouse{name: "达尔优"}
fmt.Println(m1.name)
f1 := FlashDisk{name: "金士顿"}
fmt.Println(f1.name)
testInterface(m1)
testInterface(f1)
var usb USB
usb = m1
usb.start()
usb.end()
}
type USB interface {
start()
end()
}
type Mouse struct {
name string
}
type FlashDisk struct {
name string
}
func (m Mouse)start() {
fmt.Println(m.name,"鼠标已就绪,可以开始工作了")
}
func (m Mouse)end() {
fmt.Println(m.name,"结束工作,可以安全退出")
}
func (f FlashDisk) start() {
fmt.Println(f.name,"U盘已就绪,可以开始工作了")
}
func (f FlashDisk)end() {
fmt.Println(f.name,"结束工作,可以弹出...")
}
func testInterface(usb USB) {
usb.start()
usb.end()
}
结果:
达尔优
金士顿
达尔优 鼠标已就绪,可以开始工作了
达尔优 结束工作,可以安全退出
金士顿 U盘已就绪,可以开始工作了
金士顿 结束工作,可以弹出...
达尔优 鼠标已就绪,可以开始工作了
达尔优 结束工作,可以安全退出