【发布时间】:2018-11-30 03:15:50
【问题描述】:
package main
import (
"fmt"
)
type IA interface {
Parse()
Name() string
}
type A struct {
IA
}
func (a *A) Name() string {
return "AName"
}
func (a *A) Parse() {
fmt.Println("A-" + a.Name())
}
type B struct {
A
}
func (b *B) Name() string {
return "BName"
}
func main() {
a := &A{}
b := &B{}
a.Parse()
b.Parse() // I would like to see "A-BName"
}
当我从继承的结构中执行方法并在其中执行另一个结构方法时 - 是从继承的结构中执行的方法,而不是实际的对象类型。
【问题讨论】:
-
go 中没有“继承”,只是在顶部加上一些语法糖的组合。
标签: inheritance go