According to the code below:
type A struct {
}
func (a *A) Func1(i int) {
a.Func2(i)
}
func (a *A) Func2(i int) {
fmt.Println(i)
}
type B struct {
*A
}
func (b *B) Func2(i int) {
i += 1
b.A.Func2(i)
}
func main() {
var b = B{}
b.Func1(1)
}
I have a struct A
, and 2 functions Func1
, Func2
in A
, function A.Func1
will call A.Func2
.
And I have another struct B
that embedding struct A
, and have a function Func2
that overriding A.Func2
.
When I declare b
that has value B{}
and call b.Func1(1)
, it will run A.Func1
and call A.Func2
but not run A.Func1
and call B.Func2
that I override A.Func2
in B
.
My question is how can I fix the code so that when I call b.Func1(1)
, it will run A.Func1
and call B.Func2
that I override A.Func2
in B
.