Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // mult_inheritance.go | |
| package main | |
| import "fmt" | |
| type Camera struct { } | |
| func (c *Camera) TakeAPicture() string { | |
| return "Click" | |
| } | |
| type Phone struct { } | |
| func (p *Phone ) Call() string { | |
| return "Ring Ring" | |
| } | |
| // multiple inheritance | |
| type CameraPhone struct { | |
| Camera | |
| Phone | |
| } | |
| func main() { | |
| cp := new(CameraPhone) | |
| fmt.Println("Our new CameraPhone exhibits multiple behaviors ...") | |
| fmt.Println("It exhibits behavior of a Camera: ", cp.TakeAPicture()) | |
| fmt.Println("It works like a Phone too: ", cp.Call()) | |
| } | |
| /* Output: | |
| Our new CameraPhone exhibits multiple behaviors ... | |
| It exhibits behavior of a Camera: Click | |
| It works like a Phone too: Ring Ring | |
| */ |