方法
package main
import "fmt"
//38
func main() {
/*
方法:method
语法:
func (接受者) 方法名(参数列表)(返回值列表) {
}
对比函数:
意义:
方法:某个类别得行为功能,需要指定得接收者调用
函数:一段独立功能的代码,可以直接调用
语法:
方法:方法名可以相同,只要接收者不同
函数:明明不能冲突
*/
w1 := Worker2{
name: "王二狗",
age: 30,
sex: "男",
}
w1.work()
}
//定义一个结构体
type Worker2 struct {
name string
age int
sex string
}
//定义行为方法
func (w Worker2) work() {
fmt.Println(w.name,"在工作")
}
继承中的方法
/*
继承中的方法
*/
p1 := Father{"王二狗",30}
p1.eat()
//子类对象
s1 := Son{Father{"张三",20},"东大"}
s1.eat() //子类对象访问父类的方法,不重写就访问父类的方法
s1.study()
//定义一个子类
type Son struct {
Father
school string
}
//方法
func (f Father) eat() {
fmt.Println("父类吃方法,吃窝窝头")
}
//子类新增方法
func (s Son) study(){
fmt.Println("子类学习方法,学习学习")
}
//重写父类方法
func (s Son) eat() {
fmt.Println("子类吃方法,吃方便面")
}
网友评论