package main
import (
"fmt"
)
type Biology interface {
sayhi()
}
type Man struct {
name string
age int
}
type Monster struct {
name string
age int
}
func (this *Man) sayhi() { // 实现抽象方法1
fmt.Printf("Man[%s, %d] sayhi\n", this.name, this.age)
}
func (this *Monster) sayhi() { // 实现抽象方法1
fmt.Printf("Monster[%s, %d] sayhi\n", this.name, this.age)
}
func WhoSayHi(i Biology) {
i.sayhi()
}
func main() {
man := &Man{"我是人", 100}
monster := &Monster{"妖怪", 1000}
WhoSayHi(man)
WhoSayHi(monster)
}