package inheritance import "fmt" type GetMethod[T interface{}] struct { SomeGetVar int DbConn int } func (m *GetMethod[T]) Init(dbConn int) { m.DbConn = dbConn } func (m GetMethod[T]) Get() T { var model T fmt.Printf("Get DbConn: %d\n", m.DbConn) return model } type ListMethod[T interface{}] struct { SomeListVar int DbConn int } func (m *ListMethod[T]) Init(dbConn int) { m.DbConn = dbConn } func (m ListMethod[T]) List() { fmt.Printf("List DbConn: %d\n", m.DbConn) } type SaveMethod[T interface{}] struct { DbConn int } func (m *SaveMethod[T]) Init(dbConn int) { m.DbConn = dbConn } func (m SaveMethod[T]) Save() { fmt.Printf("List DbConn: %d\n", m.DbConn) }