Back to Course
OOP Concepts

Structs and Methods in Go – Composition over Inheritance

What is a Struct?

A struct is a composite type that groups related fields together, similar to a class without inheritance.

type Person struct {
    Name string
    Age  int
}

p := Person{Name: "Alice", Age: 25}
fmt.Println(p.Name) // Alice

Methods on Structs

func (p Person) Greet() string {
    return "Hi, I'm " + p.Name
}

fmt.Println(p.Greet())

Composition over Inheritance

Go doesn't support classical inheritance. Instead, it favors composition — embedding one struct inside another to reuse behavior.

type Employee struct {
    Person   // embedded struct
    Salary int
}

e := Employee{Person: Person{Name: "Bob", Age: 30}, Salary: 50000}
fmt.Println(e.Greet()) // inherited via composition

Ready to master real-world Go skills?

Learn Go hands-on with mentor-led, live sessions.

Explore Course