03-接口

1. 代码结构

在这里插入图片描述

2. struct_demo.go

package struct_demo
import "fmt"
type Power struct {
Atk int
Def int
}
//定义西蜀结构体
type Xishu struct {
ID int
Name string
Age int
Position string
Power
}
//定义东吴结构体
type Dongwu struct {
ID int
Name string
Age int
Position string
Power
}
//定义 西蜀方法一
func (xishu *Xishu)Infor01() string {
fmt.Println("蜀将个人信息")
fmt.Println("姓名: ",xishu.Name)
fmt.Println("职务: ",xishu.Position)
return "蜀将个人信息"
}
//定义 西蜀方法二
func (xishu *Xishu)Infor02() string {
fmt.Println("蜀将战力")
fmt.Println("攻击力: ",xishu.Atk)
fmt.Println("防御力: ",xishu.Def)
return "蜀将战力"
}
//定义 东吴方法一
func (dongwu *Dongwu)Infor01() string {
fmt.Println("吴将个人信息")
fmt.Println("姓名: ",dongwu.Name)
fmt.Println("职务: ",dongwu.Position)
return "吴将个人信息"
}
//定义 东吴方法二
func (dongwu *Dongwu)Infor02() string {
fmt.Println("吴将战力")
fmt.Println("攻击力: ",dongwu.Atk)
fmt.Println("防御力: ",dongwu.Def)
return "武将战力"
}

3. interface_demo

package interface_demo
//定义一个接口
type Behavior interface {
Infor01() string
Infor02() string
}

4. main.go

package main
import (
"814/interface_demo"
"814/struct_demo"
"fmt"
)
func main () {
//定义刘备数据
liubei := new(struct_demo.Xishu)
liubei.ID = 0
liubei.Name = "刘备"
liubei.Age = 28
liubei.Position = "主公"
liubei.Atk = 200
liubei.Def = 300
//定义周瑜数据
zhouyu := new(struct_demo.Dongwu)
zhouyu.ID = 0
zhouyu.Name = "周瑜"
zhouyu.Age = 20
zhouyu.Position = "大都督"
zhouyu.Atk = 400
zhouyu.Def = 300
//调用后边创建的"调用接口的函数",分别将刘备、周瑜数据传入
action(liubei)
action(zhouyu)
}
//定义一个函数,调用接口
func action( b interface_demo.Behavior) string {
fmt.Println("#################")
b.Infor01()
fmt.Println("-------------------")
b.Infor02()
return ""
}

5. 运行结果

#################
蜀将个人信息
姓名: 刘备
职务: 主公
-------------------
蜀将战力
攻击力: 200
防御力: 300
#################
吴将个人信息
姓名: 周瑜
职务: 大都督
-------------------
吴将战力
攻击力: 400
防御力: 300
Process finished with the exit code 0

posted on   运维开发玄德公  阅读(6)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示