golang中结构体的嵌套、方法的继承、方法的重写

package main

import "fmt"

type human struct {
	name, phone string
	age         int8
}
type student struct {
	human  // 嵌套结构体
	school string
}
type employee struct {
	human
	company string
}

func (h human) sayHi() {
	fmt.Printf("我叫%s,今年%d,联系方式%s\n", h.name, h.age, h.phone)
}
// 方法的重写
func (s student) sayHi() {
	fmt.Printf("我叫%s,我是%s的,今年%d,联系方式%s\n", s.name, s.school, s.age, s.phone)
}

func main() {
	h1 := human{name: "zs", age: 18, phone: "1365434789"}
	h1.sayHi()

	// 方法的继承
	s1 := student{school: "一种", human: human{name: "lisi", age: 88, phone: "123456789"}}
	s1.sayHi()

}

  

posted @ 2021-10-11 15:57  专职  阅读(513)  评论(0编辑  收藏  举报