package extension
import (
"fmt"
"testing"
)
type Pet struct{
}
func (p *Pet) Speak() {
fmt.Print("...")
}
func (p *Pet) SpeakTo(host string) {
p.Speak()
fmt.Println(" ", host)
}
//type Dog struct {
// p *Pet
//}
//func (d *Dog) Speak() {
// //d.p.Speak()
// fmt.Println("wang!")
//}
//func (d *Dog) SpeakTo(host string) {
// d.Speak()
// fmt.Println(" ", host)
//}
//func TestDog(t *testing.T){
// dog := new(Dog)
// dog.SpeakTo("chen")
//}
// --------------------------------------------
type Dog struct {
Pet //内嵌的结构类型,不能当做继承来用,不支持访问子类的方法数据,不支持重载,不支持LSP
}
func (d *Dog) Speak(){
fmt.Println("wang!")
}
func TestDot(t *testing.T){
//var dog Pet := new(Dog) //go 不支持继承,不支持显示类型的转换
dog := new(Dog)
dog.SpeakTo("Chao")
}