title: Golang struct calling embedded type methods when method has been overloaded
body: <p>I am trying to learn Go, and I found a good resource <a href="https://github.com/Unknwon/build-web-application-with-golang_EN/blob/master/eBook/02.5.md#method-overload">here</a>.</p>
  
  <p>The example given on method overloading is reproduced below:</p>
  
  <pre><code>package main
  import "fmt"
  
  type Human struct {
      name string
      age int
      phone string
  }
  
  
  type Employee struct {
      Human 
      company string
  }
  
  func (h *Human) SayHi() {
      fmt.Printf("Hi, I am %s you can call me on %s\n", h.name, h.phone)
  }
  
  func (e *Employee) SayHi() {
      fmt.Printf("Hi, I am %s, I work at %s. Call me on %s\n", e.name,
          e.company, e.phone) //Yes you can split into 2 lines here.
  }
  
  func main() {
      sam := Employee{Human{"Sam", 45, "111-888-XXXX"}, "Golang Inc"}
      sam.SayHi()
  }
  </code></pre>
  
  <p>Is it possible to call the "base" struct's (Human's) methods, eg. sam.Human.SayHi()  Downcasting doesn't work (because there is no type hierarchy right?)</p>