一、面向对象继承
- 写一个父类
package main
import "fmt"
type Human struct {
name string
sex string
}
func (this *Human) Eat() {
fmt.Println("Human.Eat()...")
}
func (this *Human) Walk() {
fmt.Println("Human.Walk()...")
}
func main() {
h := Human{"zhang3","femal"}
h.Eat()
h.Walk()
}
- 子类继承 父类
type SuperMan struct {
Human //superman类继承了human类的方法
level int
}
- 子类的新方法
//重定义父类的方法Eat()
func (this *SuperMan) Eat() {
fmt.Println("SuperMan.Eat()...")
}
//子类的新方法
func (this *SuperMan) Fly() {
fmt.Println("Superman.Fly()...")
}
- 定义子类
两种方法:
第一种:
s :=SuperMan{Human{"li4","female"},88}
第二种:文章来源:https://www.toymoban.com/news/detail-813995.html
var s SuperMan
s.name = "lis4"
s.sex = "female"
s.level = 88
- 子类继承父类的使用
package main
import "fmt"
type Human struct {
name string
sex string
}
func (this *Human) Eat() {
fmt.Println("Human.Eat()...")
}
func (this *Human) Walk() {
fmt.Println("Human.Walk()...")
}
//重定义父类的方法Eat()
func (this *SuperMan) Eat() {
fmt.Println("SuperMan.Eat()...")
}
//子类的新方法
func (this *SuperMan) Fly() {
fmt.Println("Superman.Fly()...")
}
type SuperMan struct {
Human //superman类继承了human类的方法
level int
}
func (this *SuperMan) Print() {
fmt.Println("name = ",this.name)
fmt.Println("sex = ",this.sex)
fmt.Println("level = ",this.level)
}
func main() {
h := Human{"zhang3","femal"}
h.Eat()
h.Walk()
//定义一个子类对象
//s :=SuperMan{Human{"li4","female"},88}
var s SuperMan
s.name = "lis4"
s.sex = "female"
s.level = 88
s.Walk() //父类的方法
s.Eat() //子类的方法
s.Fly() //子类的方法
//打印出来
s.Print()
}
文章来源地址https://www.toymoban.com/news/detail-813995.html
到了这里,关于go语言(十一)----面向对象继承的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!