golnag实现继承

golang实现继承

目录

  • golang实现继承
  • 前言
  • 步骤
    • 1.构造父类
    • 2.构造子类
    • 3.多态


前言

golang中没有继承,本文将介绍如何用golang实现继承功能。

步骤

1.构造父类

go中的父类用接口+结构体实现

package main

type IAnimal interface {
	Eat()
}

type Animal struct {
	name string
}

func NewAnimal(name string) *Animal {
	return &Animal{name: name}
}
func (c *Animal) Eat() {
	println("Animal eat")
}

func main() {
	cat := newCat("mimi")
	cat.Eat() // Animal eat
}

2.构造子类

代码如下(示例):

type Cat struct {
	*Animal
}

func newCat(name string) *Cat {
	return &Cat{Animal: NewAnimal(name)}
}

3.多态

子类直接覆写父类的方法即可实现多态。

func (c *Cat) Eat() {
	println("Cat eat")
}
func main() {
	cat := newCat("mimi")
	cat.Eat() // Cat eat
}

你可能感兴趣的:(golang,golang)