A multiparadigm language supports several programming styles instead of prescribing one. Go occupies this practical middle ground: it supports imperative and declarative programming without requiring a functional or object-oriented approach. section 3.2
Go adapts object-oriented techniques through structs, interfaces, and methods rather than explicit inheritance. An interface defines required behavior; independent types satisfy it by implementing the required methods. This preserves object-like abstraction while using Go’s own type model. section 3.2
Modeling animals without inheritance
Define an Animal interface with speak(), then implement that method on Cat, Dog, and Llama. Assign each value to an Animal variable and invoke speak(); the Llama assignment initially fails until Llama implements the interface.
