Go のインターフェースは、メソッドシグネチャのセット — つまり動作のコントラクトを定義します。重要な点として、インターフェースは暗黙的に満たされます。そのメソッドを全て持つ型は、明示的な「implements」宣言なしに自動的にインターフェースを満たします。この構造的でダックタイピングのアプローチは、Go の特徴であり強力です。
インターフェースの定義と暗黙的な実装
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
