6.3 扩展与复用

peter
• 阅读 1016

本节就用这一个例子来说明扩展与复用

测试实例 1

package extension

import (
    "fmt"
    "testing"
)

type Pet struct {

}

func (p *Pet) Speak() {
    fmt.Print("...")
}

func (p *Pet) SpeakTo(host string)  {
    p.Speak()
    fmt.Print(" ", host)
}
// 内嵌的结构类型
type Dog struct {
    Pet
}

func (d *Dog) Speak() {
    fmt.Println("wang!")
}

func TestDog(t *testing.T) {
    dog := new(Dog)
    // 从输出可以看出,内嵌的结构类型,无法当做继承来用
    // 不支持重载,不支持 LSP
    dog.SpeakTo("Chao")  // ... Chao
}
点赞
收藏
评论区
推荐文章

暂无数据