golang面向对象
来源:互联网 发布:淘宝爱互动在哪里 编辑:程序博客网 时间:2024/05/16 08:55
golang可以实现面向对象,C++能做的,golang基本也可以做。
1.简单继承
golang用组合来实现继承,父类实例的作为子类的匿名成员即可。
继承了父类的成员变量和成员方法。
同名的成员方法,无论完整函数签名是否相同,父类方法均被隐藏。
同名的变量,子类优先,父类的必须加上父类类型才能访问。
e.Human.SayHi()
在正常的设计中,不要出现同名的情况。
2.多重继承。
组合多个基类即可
3.多态行为
用接口实现
package mainimport ( "fmt") // abstract basetype IA interface { Kaka()int}// child atype A struct{}func (a *A)Kaka()int{ return 3}// child btype B struct{}func (b *B)Kaka()int{ return 1}func Fac(i int) IA{ var x IA if i>0{// x=new(A) // 注意赋值规则: interface型的变量相当于基类指针 x=&A{} // 注意赋值规则: interface型的变量相当于基类指针 }else{ x=&B{} } return x}func main() { i:=Fac(0)// input 0 or 1 fmt.Println(i.Kaka())}
4.组合语义
用命名的组合,与匿名组合实现的继承语义区分开
a1:=&A{}
与
a1:=A{}的区别:
第一个是指针,第二个是值,尽管指针没有用->而是用.,但指针还是指针。
自定义的对象,在作为函数参数的时候,依赖默认是值传递的。接受者可以看做特殊的函数参数,与函数传递参数是一样的。
0 0
- golang面向对象总结
- golang 面向对象
- golang面向对象总结
- golang面向对象
- golang struct 面向对象
- Golang的面向对象
- Golang(笔记) 面向对象
- Golang面向对象之类型、方法、多态
- golang学习笔记[2] 面向对象OOP
- Golang初级系列教程-面向对象总结
- golang中的面向对象的思想
- 面向对象设计思想与 golang 编程
- Golang 学习之路八:面向对象-方法(Method)
- golang语法学习(三) golang的面向对象机制-接口与方法
- golang语法学习(三) golang的面向对象机制-接口与方法
- Golang简单的对象池
- 面向对象
- 面向对象
- Installing the SciPy Stack
- ios 获取视频的总时长
- nUnit软件测试
- 先进的自动布局工具箱
- Java抓取网页数据
- golang面向对象
- PostgreSQL
- Oracle的JDBC驱动的版本你了解吗?
- [BZOJ1834]ZJOI2010网络扩容|最大流|费用流
- 深入了解字符串 之 创建并初始化C++字符串
- Asterisk 呼叫流程
- 文件上传的原理
- Foundation NSString常用方法
- ruby gem 下载时,无响应, 需要用到镜像