goбъектное-2
Приведу пример с множественным наследованием (описания из предыдущего поста предполагаются):
type Colored interface {
color () string
}
type ColoredPoint interface {
Point
Colored
}
func prColAndAbs(cp ColoredPoint) {
fmt.Printf("Color: %s, Abs: %g\n", cp.color(), cp.abs ())
}
type Color struct {
string
}
func (c Color) color () string {
return c.string
}
type ColoredPoint2D struct {
Point2D
Color
}
type ColoredPoint3D struct {
Point3D
Color
}
func main() {
p2 := Point2D {1, 2}
p3 := Point3D {p2, 3}
cp2 := ColoredPoint2D {p2, Color{"red"}}
cp3 := ColoredPoint3D {p3, Color{"green"}}
prColAndAbs(cp2)
prColAndAbs(cp3)
}
В особых пояснениях, думаю, не нуждается.