go语言中不像java中使用extend关键字直接继承类实现继承
在 go语言,可以通过嵌套实现继承
package main
import "fmt"
/**
嵌套体实现继承
*/
func main() {
var d1 = dog{2, animal{name: "旺财"}}
d1.move() // 相当于 d1.animal.move()
d1.wangwang()
fmt.Println(d1)
}
type animal struct {
name string
}
func (a *animal) move() {
fmt.Println("动物名: %s ", a.name)
}
type dog struct {
age int8
animal
}
//指定某个对象才能调用方法
func (d *dog) wangwang() {
fmt.Println("%d 岁的狗会汪汪汪", d.age)
}
这里相当于对象里嵌套对象
可以看到dog对象调用基类animal的方法move
这里的d1.move() 相当于 d1.animal.move(),实际还是使用嵌套对象的引用调用自己的方法