仮想関数をインターフェースに書き出して、Self経由で呼び出す方式。 手順は、 構造体とインターフェースを対にして作る それぞれに埋め込みで継承していく コンストラクタ関数で、Selfを伝搬させていく こんなダサくて効率の悪いことは普通やらないが、GUIフレームワークのようにオブジェクト指向が合うものには、部分的に似たような構造が使われている感じがする。 package main import ( "fmt" ) type IA interface { MethodA() } type A struct { Self IA } func (a *A) MethodA() { fmt.Println("A.MethodA") } func (a *A) CallMethodA() { fmt.Println("A.CallMethodA") a.Self.MethodA() // Self経