Go"继承中"的方法

Go "继承中"的方法

package main

import "fmt"

//"继承中的方法"
func main() {
   //1.创建Person类型
   p1 := Person{name: "小明",age: 21}
   fmt.Println(p1.name,p1.age)
   p1.eat()      //父类对象, 访问父类的方法

   //2.创建Student类型
   s1 := Student{Person:Person{name: "狗子",age: 20},school: "北京大学"}
   fmt.Println(s1.name,s1.age,s1.school)   //(提升字段)子类对象可以直接访问父类的对象
   s1.eat()  //子类对象,访问父类的方法()
   s1.study()  //子类访问自己新增的方法
   s1.eat()   //如果存在方法的重写,子类对象访问重写的方法
}
//1.定义一个"父类"
type Person struct {
   name string
   age int
}
//2.定义一个子类
type Student struct {
   Person   //结构体嵌套 , 模拟继承性

   school string

}
//3.方法
func (p Person) eat() {
   fmt.Println("父类的方法,吃饭...")
}

func (s Student) study() {
   fmt.Println("子类新增方法,学习")
}

func (s Student) eat() {
   fmt.Println("吃炸鸡,喝啤酒")
}
结果:
小明 21
父类的方法,吃饭...
狗子 20 北京大学
吃炸鸡,喝啤酒
子类新增方法,学习
吃炸鸡,喝啤酒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值