博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang学习的点点滴滴:利用组合实现继承
阅读量:6891 次
发布时间:2019-06-27

本文共 696 字,大约阅读时间需要 2 分钟。

  hot3.png

package main import "fmt"type Base struct {	Name string}func (b *Base) SetName(name string) {	b.Name = name}func (b *Base) GetName() string {	return b.Name}// 组合,实现继承type Child struct {	base Base  // 这里保存的是Base类型}// 重写GetName方法func (c *Child) GetName() string {	c.base.SetName("modify...")	return c.base.GetName()}// 实现继承,但需要外部提供一个Base的实例type Child2 struct {	base *Base  // 这里是指针}func (c *Child2) GetName() string {	c.base.SetName("canuser?")	return c.base.GetName()}func main() {	c := new(Child)	c.base.SetName("world")	fmt.Println(c.GetName())	c2 := new(Child2)	c2.base = new(Base)  // 因为Child2里面的Base是指针类型,所以必须提供一个Base的实例	fmt.Println(c2.GetName())}

转载于:https://my.oschina.net/qibin/blog/323342

你可能感兴趣的文章
Vertica的这些事<八>—— vertica加密数据
查看>>
python 自定义 包 模块 打包 安装
查看>>
ubuntu桌面的标题栏和启动栏消失问题[亲测可用]
查看>>
Cloud technology in today's job market
查看>>
3月31日云栖精选夜读:数据科学咨询:想要转型毫无头绪?看了本文你不慌
查看>>
程序猿日记S01E03
查看>>
如何解决域名解析不生效问题?
查看>>
Android开发者指南(9) —— ProGuard
查看>>
MySQL · 答疑解惑 · 物理备份死锁分析
查看>>
字符串指针修改问题
查看>>
JavaScript权威设计--跨域,XMLHttpRequest(简要学习笔记十九)
查看>>
跨入流式计算时代,用不着洪荒之力——在阿里云容器服务上一键部署JStorm
查看>>
通过JCONSOLE监控TOMCAT的JVM使用情况
查看>>
jquery editable plugin--点击编辑文字插件
查看>>
[Java] TreeMap、HashMap、LindedHashMap的区别
查看>>
javascript 常用自定义方法
查看>>
MariaDB · 新特性 · 窗口函数
查看>>
CSS 选择器
查看>>
怎样开发出稳定,健壮的Java程序(Java=restart )?
查看>>
thinkphp 3.2分布式数据库读写分离扩展阅读
查看>>