4-5 接口的继承
作者:互联网
package main import "fmt" //定义两个父类接口 //定义动物接口 type Animal interface { //新陈代谢 Eat(food string)(shit string) Die() } //定义战士接口,会进攻和防守 type Filghter interface { //并造成对手掉血 Attack()(blood int) Defend() } //显示地继承父类接口 //野兽接口,拥有动物的一切特征 //野兽接口,用于战士的一切特征 //type Beast interface { // //野兽接口继承动物接口 // Animal // //野兽接口继承战士接口 // Filghter // run() //} //隐式的继承父类接口 type Beast interface { //显示的继承父类接口 Animal //隐示的继承Filghter接口,没有明确说继承Filghter接口,但是方法都实现了。 Attack()(blood int) Defend() run() } type Tiger struct { name string food string shit string power int } func (t *Tiger)Eat(food string)(shit string) { fmt.Printf("本王正在享用%s,并撇下了%s\n",t.food,t.shit) return t.shit } func (t *Tiger)Die() { fmt.Printf("大猫%s也有狗带的一天\n",t.name) } func (t *Tiger)Attack() (bloodLoss int) { fmt.Printf("本王咬你,掉血%d毫升\n", t.power) return t.power } func (t *Tiger)run() { fmt.Printf("本王在奔跑") } func (t *Tiger)Defend() { fmt.Printf("本王防守\n") } func main() { //声明接口 接口不可以赋值 var animal Animal var beast Beast var fighter Filghter tigerPtr := &Tiger{"东北虎", "其他动物", "翔", 1024} animal= tigerPtr beast = tigerPtr fighter = tigerPtr animal.Eat("其他动物") fighter.Attack() beast.run() }
标签:string,继承,fmt,接口,Tiger,func,shit 来源: https://www.cnblogs.com/paad/p/11093480.html