社区
其他技术讨论专区
帖子详情
关于go继承的问题 父struct的方法怎么调子struct的方法
weixin_38054592
2019-09-20 10:37:58
比如说 我现在有三个struct 人1 人2 人3
它们都继承了一个父struct 人 里面的两个方法 唱歌() 跳舞()
然后它们各自实现了一个方法 吃饭() 它们的这个方法是同名但是内容不同的
现在我想写一个方法叫 生活() 它调用了上面的三个方法 调的方法是一样的 有没有办法只写一遍这个方法 不用每个人重复写一遍 在不违背dry原则的情况下给这三个人加这个方法
...全文
124
6
打赏
收藏
关于go继承的问题 父struct的方法怎么调子struct的方法
比如说 我现在有三个struct 人1 人2 人3 它们都继承了一个父struct 人 里面的两个方法 唱歌() 跳舞() 然后它们各自实现了一个方法 吃饭() 它们的这个方法是同名但是内容不同的 现在我想写一个方法叫 生活() 它调用了上面的三个方法 调的方法是一样的 有没有办法只写一遍这个方法 不用每个人重复写一遍 在不违背dry原则的情况下给这三个人加这个方法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38088352
2019-09-20
打赏
举报
回复
那你应该写个接口啊
weixin_38113341
2019-09-20
打赏
举报
回复
我怎么觉得大部分语言都不能直接这样掉方法…… 直接把你要调的方法作为结构中的一个属性吧,毕竟结构中是可以保存函数类型的。
weixin_38120800
2019-09-20
打赏
举报
回复
不要用面对对象的思维来使用go,否则请不要考虑选用go语言. 就像楼上所说的大部分语言都不能从父类生成的实例中指定调用子类的方法,请不要异想天开. 在go中办法是有的 只不过很别扭,你需要自己实现VMT. 我觉得楼主还是放弃go语言吧,或者至少等go能支持泛型了再开始使用, 如果你被OOP的思维束缚了很难用好golang的.
weixin_38123094
2019-09-20
打赏
举报
回复
逻辑很乱 应该将父struct才成一个接口就好。 **golang没有继承** 一种我感觉要的实现 ```golang type ( A interface { 唱歌() 跳舞() } B struct { A } ) func (b *B) 生活() { b.A.唱歌() b.A.跳舞() } ```
weixin_38059392
2019-09-20
打赏
举报
回复
或者说 如果我在父类加一个方法 吃饭() 怎么让父类的方法调到子类覆写的这个吃法() 方法
weixin_38066403
2019-09-20
打赏
举报
回复
golang所谓的继承的本质是聚合,所以并没有你所说的什么父类子类(私以为确切说叫外部类对象与内部类对象更为合适)的概念,也不存在虚函数重写的语法。很遗憾,你说的做不到。
golang
父
类调用子类
方法
、
继承
多态的实现方式
实现思路 go 语言中,当子类调用
父
类
方法
时,“作用域”将进入
父
类的作用域,看不见子类的
方法
存在(个人想象的) 我们可以通过参数将子类传递给
父
类,实现在
父
类中调用子类
方法
。 实现方式有两种: 一、 基于接口 定义接口,
父
子类都实现接口,
父
类
方法
接收接口类型参数 特点: 结构简单,思路清晰。 基于接口,轻松应对多级
继承
的情况。 推荐使用...
golang快速入门--语言基础
语言基础语法 行分隔符 在golang中,多个语句写在同一行,必须使用分号 " ; " 分隔开 注释 单行注释 使用// 即可表示 多行注释 使用/…/ 表示 字符串连接 允许使用 + 来拼接字串 使用 fmt.Sprintf 格式化字符串并赋值给新串 关键字(25) break default func interface select case defer go map
struct
chan else goto package switch const fallthrough if
Android系统Launcher启动流程_android 开机启动launcher日志(1)
endif//AppRuntime构造函数调用
父
类
方法
初始化Skia引擎//入口
方法
//构建AppRuntimeargc–;argv++;//解析init.rc 启动zygote service参数++i;//ztgote设置为true//32位名称为zygote,64位为zygote64//是否启动system-server//独立应用//进程别名,区分abi= 0) {
unity游戏开发学习笔记
unity note: 游戏和三维互动内容开发工具,专业游戏引擎 游戏引擎: 一款游戏最核心的代码 包含: 渲染引擎,物理引擎、碰撞检测,音效、脚本引擎、动画系统 人工智能、网络引擎、场景管理。 游戏公司分工 策划、美工、软件工程师、测试工程师、客服 首月: day1: 环境搭建、C#语言基础、Unity API、物理引擎1、3D数学基础、UGUI 程序界面 Project->Assets文件 Hierarchy-> 对象 Scene 右键旋转 滚轮->前进后退 F键—>
Android系统Launcher启动流程_android 开机启动launcher日志
下面是辛苦给大家整理的学习路线网上学习资料一大堆,但如果学到的知识不成体系,遇到
问题
时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!//内存监控代理服务//获取ActivityManager。
其他技术讨论专区
435
社区成员
791,270
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章