分享
go - 继承
a11101171 · · 15355 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
1 方法的继承
在go中没有继承的关键字,但是我们可以通过interface这个类型做出继承的效果,看如下代码,Car就继承了Start和Stop这两个方法
import (
"fmt"
)
type Engine interface {
Start()
Stop()
}
type Car struct {
Engine
}
func (this *Car) Start() {
fmt.Println("Car->Start()")
}
func main() {
fmt.Println("Start Main func()")
car := new(Car)
car.Start()
}
2 成员变量的继承
相当与定义Person人这个类,然后定义男人Man继承人的姓名,年龄这个两个成员属性
type Person struct {
Name string
Age int
}
type Man struct {
Person
}
func main() {
man := Man{Person{Name: "xiaoming"}}
fmt.Printf("My Name is %s", man.Name)
}版权声明:本文为博主原创文章,未经博主允许不得转载。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信15355 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
1 方法的继承
在go中没有继承的关键字,但是我们可以通过interface这个类型做出继承的效果,看如下代码,Car就继承了Start和Stop这两个方法
import (
"fmt"
)
type Engine interface {
Start()
Stop()
}
type Car struct {
Engine
}
func (this *Car) Start() {
fmt.Println("Car->Start()")
}
func main() {
fmt.Println("Start Main func()")
car := new(Car)
car.Start()
}
2 成员变量的继承
相当与定义Person人这个类,然后定义男人Man继承人的姓名,年龄这个两个成员属性
type Person struct {
Name string
Age int
}
type Man struct {
Person
}
func main() {
man := Man{Person{Name: "xiaoming"}}
fmt.Printf("My Name is %s", man.Name)
}版权声明:本文为博主原创文章,未经博主允许不得转载。