Interfaces with similar methods in Go Programming Language
Two or more interfaces can have one or more common method in list of method sets. Here, Structure is a common method between two interfaces Vehicle and Human.
Example
package main
import "fmt"
type Vehicle interface {
Structure() []string // Common Method
Speed() string
}
type Human interface {
Structure() []string // Common Method
Performance() string
}
type Car string
func (c Car) Structure() []string {
var parts = []string{"ECU", "Engine", "Air Filters", "Wipers", "Gas Task"}
return parts
}
func (c Car) Speed() string {
return "200 Km/Hrs"
}
type Man string
func (m Man) Structure() []string {
var parts = []string{"Brain", "Heart", "Nose", "Eyelashes", "Stomach"}
return parts
}
func (m Man) Performance() string {
return "8 Hrs/Day"
}
func main() {
var bmw Vehicle
bmw = Car("World Top Brand")
var labour Human
labour = Man("Software Developer")
for i, j := range bmw.Structure() {
fmt.Printf("%-15s <=====> %15s\n", j, labour.Structure()[i])
}
}
Output
ECU <=====> Brain
Engine <=====> Heart
Air Filters <=====> Nose
Wipers <=====> Eyelashes
Gas Task <=====> Stomach
Most Helpful This Week
How to declare Interface Type in Go Programming Language
Polymorphism in Go Programming Language
Empty Interface Type in Go Programming Language
Defining a type that satisfies an interface in Go Programming Language
Interface Accepting Address of the Variable in Golang
Interface embedding another interface in Go Programming Language
Implementing Multiple Interfaces in Go Programming Language