go-扩展与复用

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")

}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值