My Go Tutorial

No Inheritance – Type embedding

A struct to inherit the methods of another struct, here the current Person struct

type Person struct{
    name string
    age int

func (p Person) GetName()string{

func (p Person) GetAge()int{
  return p.age

A new struct type called Student  which has all the properties and methods of Person.

type Student struct{
    studentId int

func (s Student) GetStudentID() int {
    return s.studentId

the type Person inside the struct definition of type Student, without specifying a field name. This will effectively make the Student type inherit all the exported methods and fields of the Person struct type.

s := Student{}
//This code is valid, because the method GetAge() belongs to the embedded type 'Person':