功能具体业务
接口
接口具体功能
package main
import(
"fmt"
)
// 抽象层
type car interface {
Run()
}
type driver interface {
Dive()
}
// 实现层
type benz struct {}
func (b *benz) Run() {
fmt.Println("benz 在奔跑")
}
type bmw struct {}
func (b *bmw) Run() {
fmt.Println("bmw 在奔跑")
}
type zhang3 struct {}
func(z *zhang3) Dive(ca car) { // 参数是多态
fmt.Println("zhangs在驾驶")
ca.Run()
}
type li4 struct {}
func(l *li4) Dive(ca car) { // 参数是多态
fmt.Println("zhangs在驾驶")
ca.Run()
}
func main() {
var b car
b = &bmw{}
var jiashi zhang3
jiashi.Dive(b)
}