Go语言使用组合的方式实现多继承的方法
程序员文章站
2022-06-17 10:22:05
本文实例讲述了go语言使用组合的方式实现多继承的方法。分享给大家供大家参考。具体实现方法如下:
在大多数面向对象的编程语言中多继承都是不支持的。因为在基于class的体系...
本文实例讲述了go语言使用组合的方式实现多继承的方法。分享给大家供大家参考。具体实现方法如下:
在大多数面向对象的编程语言中多继承都是不支持的。因为在基于class的体系中,多继承极大地增加了编译器的复杂性。
go语言使用组合的方式实现继承,因此也可以很简单的实现多继承。
复制代码 代码如下:
//使用组合的方式实现多继承
type phone struct{}
func (p *phone) call() string {
return "ring ring"
}
type camera struct{}
func (c *camera) takeapicture() string {
return "click"
}
//多继承
type cameraphone struct {
camera
phone
}
func structtest0803() {
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
*/
}
type phone struct{}
func (p *phone) call() string {
return "ring ring"
}
type camera struct{}
func (c *camera) takeapicture() string {
return "click"
}
//多继承
type cameraphone struct {
camera
phone
}
func structtest0803() {
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
*/
}
希望本文所述对大家的go语言程序设计有所帮助。
上一篇: 【java】HashTable和哈希表
下一篇: Git Push Reject
推荐阅读
-
Go语言中接口组合的实现方法
-
使用go语言解析xml的实现方法(必看篇)
-
Go语言使用组合的方式实现多继承的方法
-
go 语言多态、继承的实现方法、go interface 接口
-
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
-
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
-
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
-
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法_php实例
-
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
-
Go语言中接口组合的实现方法