惜风不起、唯有努力!
golang中的interface简单使用

golang中的interface简单使用

package main

import "fmt"

type Hospital interface {
	//跟其他语言不同,接口是不能有接口变量的
	StartWork()
	StopWork()
	// StartIllness()
	// StopIllness()
}

type Patient struct {
	Name string
	Age int
}

func (p Patient)StartWork(){
	fmt.Printf("病人%s,%d岁,开始进入医院,开始看病。\n", p.Name,p.Age)
}
func (p Patient)StopWork(){
	fmt.Println("病人看病完成,离开医院。")
}

type YiShi struct {
	Name string
	Age int
}

func (s YiShi) StartWork(){
	fmt.Printf("医生%s,%d岁,专家。开始工作。\n", s.Name, s.Age)
}
func (s YiShi) StopWork(){
	fmt.Println("医生工作完成,离开医院。")
}

type YiYuan struct{
}
func(y YiYuan)yySys(h Hospital){
	h.StartWork()
	h.StopWork()
	// h.StartIllness()
	// h.StopIllness()

}
func main(){
	yiyuan := YiYuan{}
	// 结构体实现了方法
	patient := Patient{
		Name: "小明",
		Age: 20,
	}
	yishi := YiShi{
		Name: "tom",
		Age: 64,
	}
	//2个结构体要同时实现接口Hospital中的所有方法才能正常运行,不能各自实现一半。各自实现一半不等于全部实现了接口方法。
	yiyuan.yySys(yishi)
	yiyuan.yySys(patient)
}

发表回复

您的电子邮箱地址不会被公开。