• golang 通过组合实现继承
  • 通过实现接口所有的方法 implements 接口

通过组合实现继承

实例

type Parent struct {
}
func (p *Parent) p() {
	fmt.Printf("%s\n", "p()")
}
type Son struct {
	*Parent
}
func Test_extend(t *testing.T) {
	son := &Son{}
	son.p()
}

输出

p()

注意:不能使用接口在结构体里面,因为接口没有被实现是空的,会空指针异常

通过实现接口所有的方法实现接口

在这里插入图片描述

type In interface {
	Hello()
}
type Im struct {
}

func (i *Im) Hello()  {
	fmt.Printf("%s\n", "hello")
}

func Test_implements(t *testing.T) {
	i := &Im{}
	i.Hello()
}

输出

hello