Go的面对对象
Contents
Go的面对对象
Go是面向对象的语言吗?
Yes and No.
1.Go允许OO的编程风格
2.Go的struct可以看作其他语言的Class
3.Go缺乏其他语言的继承结构
4.Go的接口与其他语言有很大差异
Go的 “类”
1.其他语言中,往往用class表示一类数据
2.calss的每个实例称作“对象”
3.Go中用struct表示一类数据
4.struct每个实例并不是“对象”,而是此类型的“值”
5.struct也可以定义方法
Go的继承
1.Go并没有继承关系
2.所谓Go的继承只是组合
3.组合中的匿名字段,通过语法糖达成了类似继承的效果
Go的接口
1.接口可以定义Go中的一组行为相似的struct
2.struct并不显式实现接口,而是隐式实现
小结
1.Go没有对象,没有类,没有继承
2.Go通过组合匿名字段来达到类似继承的效果
3.通过以上手段去掉了面对对象中复杂而冗余的部分
4.保留了基本的面对对象特性