Since Go doesn't have inheritance, we use composition instead.
Sample Code
package main import "fmt" type RegularHuman struct { } func (RegularHuman) chill() { fmt.Println("Chilling..") } type Ninja struct { human RegularHuman } func (n Ninja) chill() { n.human.chill() } func (Ninja) attack() { fmt.Println("Throwing ninja stars") } type SeniorNinja struct { ninja Ninja human RegularHuman } func (sn SeniorNinja) attack() { sn.ninja.attack() fmt.Println("Swinging ninja swords") sn.human.chill() } func main(){ sn := SeniorNinja{} sn.ninja.attack() sn.ninja.chill() }