golang 继承的实现(结构体的继承 )
golang中的继承
在golang中,如果一个struct 中嵌套了另一个匿名结构体,那么这个结构体就可以直接访问这个匿名结构体中的字段和方法,从而实现继承。
package main import ( "fmt" ) type Animal struct { Name string Age int } func(animal *Animal) getAge(){ fmt.Println("动物的年龄是:",animal.Age) } type Cat struct { Animal // 嵌入了Animal的匿名结构体,从而实现了继承 } func(cat *Cat) CatRun(){ fmt.Println("猫在跑,名字:",cat.Animal.Name) } type Bird struct { Animal // 嵌入了Animal的匿名结构体,从而实现了继承Animal的字段和方法 } func(bird *Bird) BirdFly(){ fmt.Println("鸟在飞,名字:",bird.Animal.Name) } func main(){ var cat Cat cat.Animal.Name = "小猫" cat.Animal.Age = 1 cat.CatRun() cat.getAge() var bird Bird bird.Animal.Name = "小鸟" bird.Animal.Age = 2 bird.BirdFly() bird.getAge() }
运行结果如下:
博客里大都是转载的内容,其目的主要用户知识的组织和管理。