go语言method有没有继承顺序,实例探讨 计算机编程语言,尤其是面向对象的编程语言,虽然语法不同,但其原理大都是相通的!那么go语言的method方法的继承是否也有像python一样的顺序继承的机制呢?我们来用一个简单的实例探讨一下。go语言method有没有继承顺序实例packagemainimportfmttypeFlowerstruct{}typeHerbaceousstruct{}func(fFlower)flowerlanguage(){fmt。Println(这是花种类!)}func(hHerbaceous)flowerlanguage(){fmt。Println(这是草本植物!)}typeRowsstruct{LanstringFlower匿名字段,Rows继承了Flower的字段和方法Herbaceous}funcmain(){varrRowsr。flowerlanguage()r。Flower。flowerlanguage()r。Herbaceous。flowerlanguage()}代码输出:ambiguousselectorr。flowerlanguage代码解析: 如上代码,我们在Rows结构体当中用了Flower匿名字段和Herbaceous匿名字段,以继承这两个结构体,然后尝试通过r。flowerlanguage()来调用继承来的方法,发现发生ambiguousselectorr。flowerlanguage的错误,意思就是调用的方法模糊不清,因为Flower结构体和Herbaceous结构体都声明了这中method方法。如果使用r。Flower。flowerlanguage()或r。Herbaceous。flowerlanguage(),便可正常调用。结论: 因此,结论是go语言结构体(类)的继承并没有像python那样的顺序机制。那么go语言method的继承、重写是否也跟python的不同呢?可以参考如下内容: go语言method方法的继承、重写,继承顺序的探讨大器编程