Go Interface 问题

myth · · 739 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

我想问下关于interface 的问题 Go 的实现类是不是不会强制 实现类 实现 接口中的所有方法? 可以看到 我下面的方法 GoPragrammer 中只实现了 Programmer 中的writeCode 方法, 并没有实现 studyCode, 但是GoProgrammer 中这个类是没有报错, 是可以继续执行的. 1. 那么我的理解就是GoPragrammer 中并不属于 Programmer的实现类 只有当GoPragrammer 实现了 studyCode 的时候 才算 实现类 那么问题来了, 那go的接口意义在哪? 反正没有强制实现,那自己的类完全可以自己玩啊. ``` type Code struct { code string } //定义一个接口 type Programmer interface { //定义接口的方法 writeCode() Code studyCode() Code } type GoPragrammer struct { } func (p *GoPragrammer) writeCode() Code { code := Code{ code: "Go", } return code } func TestInterface(t *testing.T) { goPragrammer := new(GoPragrammer) t.Log(goPragrammer.writeCode().code) } ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

739 次点击  
加入收藏 微博
7 回复  |  直到 2020-08-24 18:09:42
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传