Golang初级系列教程-面向对象总结

来源:互联网 发布:拦截广告软件 编辑:程序博客网 时间:2024/05/22 23:33

Golang初级系列教程-面向对象总结

如果你还没有阅读关于这一部分的文章,请先去读读看。这篇文章主要是对前面的一系列做一个总结性的介绍,特别是对于接触过面向对象概念的人而言,强烈建议首先去阅读以下几篇文章。

  • Golang初级系列教程-Struct
  • Golang初级系列教程-结构体匿名字段-Anonymous fields in structs
  • Golang初级系列教程-结构体方法-Methods on structs
  • Golang初级系列教程-继承和子类
  • Golang初级系列教程-多重继承
  • Golang初级系列教程-接口
  • Golang初级系列教程-接口2
  • Golang初级系列教程-接口多态性

面向对象三原则为:封装、继承和多态。但这些并不是面向对象独有的。Go 可以不用具体考虑面向对象的复杂特性就可以实现这些功能。必须再次强调:Go 不是面向对象语言。必须把这一点深深地记在心里,Go 的实现方式和面向对象是不同的。前面通过这样的方式来说明,只是为了容易理解和学习。

封装:控制方法和属性的可见性。Go 中关于这一点的突出特点有:

  • 有两种可见性——包内可见性(私有)和 Public
  • 如果一个字段、类型或者方法以大写字母开头,那么外部包也可见即 Public, 相反以小写字母开头,那么只有当前包可见。
  • Public 举例:MyStruct MyMethod MyField
  • Private 举例:myStruct myMethod myField
  • 可以为通过类型和函数绑定 实现定义类型的方法 func (my_type) my_func() int{}
  • 如果类型并不在当前包中定义,不能声明其方法

继承:类型获得上层类型属性和方法的能力。Go 中关于这一点的突出特点有:

  • 通过匿名字段实现继承——匿名字段从代码结构看,像是两个类型组合在一起
  • 继承的类获取所有父类的属性和方法。对于不同包的继承,只有以大写字母开头的类型、字段和方法才会被继承,同一个包内,所有内容都会被继承
  • 通过多个匿名字段可以实现多重继承 type Child struct { Father; Mother }

多态:当一种类型链接到不同实例时表现出不同的行为,这种类型就具有多态性。

  • Go 中的接口可以实现多态的概念。一个接口类型可以指向任何一个实现这个接口的类型。

Golang一种神奇的语言,让我们一起进步

0 0
原创粉丝点击