【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

有过C++语言学习经历的朋友都知道,面向对象主要包括了三个基本特征:封装、继承和多态。封装,就是指运行的数据和函数绑定在一起,C++中主要是通过this指针来完成的;继承,就是指class之间可以相互继承属性和函数;多态,主要就是用统一的接口来处理通用的逻辑,每个class只需要按照接口实现自己的回调函数就可以了。

作为集大成者的go语言,自然不会在面向对象上面无所作为。相比较C++、java、C#等面向对象语言而言,它的面向对象更简单,也更容易理解。下面,我们不妨用三个简单的例子来说明一下go语言下的面向对象是什么样的。

封装特性,

package mainimport "fmt"type data struct {val int
}func (p_data* data)set(num int) {p_data.val = num
}func (p_data* data)show() {fmt.Println(p_data.val)
}func main() {p_data := &data{4}p_data.set(5)p_data.show()}

继承特性,

package mainimport "fmt"type parent struct {val int
}type child struct {parentnum int
}func main() {var c childc = child{parent{1}, 2}fmt.Println(c.num)fmt.Println(c.val)}

多态特性,

package mainimport "fmt"type act interface {write()
}type xiaoming struct {}type xiaofang struct {}func (xm *xiaoming) write() {fmt.Println("xiaoming write")
}func (xf *xiaofang) write() {fmt.Println("xiaofang write")
}func main() {var w act;xm := xiaoming{}xf := xiaofang{}w = &xmw.write()w = &xfw.write()
}

在面向对象上,go语言表现得更加简洁和直接。一方面,这来自与语言设计者对面向对象透彻的理解;另一方面,我想这也来自于google设计者对过往经验的总结。个人觉得这几个特性还是非常有意思的,有兴趣的朋友可以自己尝试一下。

神奇的go语言(面向对象)相关推荐

  1. c语言面向对象编程中的类_C ++中的面向对象编程

    c语言面向对象编程中的类 Object oriented programming, OOP for short, aims to implement real world entities like ...

  2. C语言面向对象编程(四):面向接口编程

    Java 中有 interface 关键字,C++ 中有抽象类或纯虚类可以与 interface 比拟,C 语言中也可以实现类似的特性. 在面试 Java 程序员时我经常问的一个问题是:接口和抽象类有 ...

  3. C语言面向对象编程(二):继承详解

    在  C 语言面向对象编程(一)里说到继承,这里再详细说一下. C++ 中的继承,从派生类与基类的关系来看(出于对比 C 与 C++,只说公有继承): 派生类内部可以直接使用基类的 public .p ...

  4. C语言面向对象编程(六):配置文件解析

    在实际项目中,经常会把软件的某些选项写入配置文件. Windows 平台上的 INI 文件格式简单易用,本篇文章利用<C语言面向对象编程(五):单链表实现>中实现的单链表,设计了一个&qu ...

  5. java 168转换成861_java实验-java语言面向对象编程基础

    java实验-java语言面向对象编程基础 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 8.90 积分 广州大学学生实验报告广州大学学生实验报告 ...

  6. Go语言面向对象编程

    系统类型 为类型添加方法 Go语言的类型,除了指针之外,都可以组合出自己的方法. type Integer intfunc (a Integer) Less(b Integer) bool {retu ...

  7. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

    介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...

  8. 我所偏爱的 C 语言面向对象编程范式

    我所偏爱的 C 语言面向对象编程范式 面向对象编程不是银弹.大部分场合,我对面向对象的使用非常谨慎,能不用则不用.相关的讨论就不展开了. 但是,某些场合下,采用面向对象的确是比较好的方案.比如 UI ...

  9. c语言面向对象编程显示,c语言面向对象编程

    场景:C语言面向对象编程(6):配置文件解析 C语言面向对象编程(六):配置文件解析 在实际项目中,经常会把软件的某些选项写入配置文件. Windows 平台上的 INI 文件格式简单易用,本篇文章利 ...

  10. bnu1209 1--0的神奇游戏 C语言版

    北京师范大学珠海分校 Judge Online of ACM ICPC 1209 1-->0的神奇游戏 C语言版 #include <stdio.h> int main(){ int ...

最新文章

  1. wxWidgets:wxWidgets 示例演示网络相关功能
  2. 如何进行服务器备份操作系统,如何在Linux服务器上做备份和恢复
  3. 一步步分析-C语言如何面向对象编程
  4. mysql适合什么阵列_如何选择最合适的RAID级别
  5. Acoustica 7 Premium Edition for Mac(音频处理软件) v7.3.28
  6. rtsp转rtmp服务linux,ubuntu安装流媒体服务器(nginx+rtmp,rtsp转rtmp,rtsp转m3u8)
  7. 渗透工具—反制爬虫之Burp Suite RCE
  8. 10.12.1 安装cocoapods及使用详解
  9. ID3、C4.5、CART决策树算法解析(关键内容讲解)
  10. 大学数学实验习题--统计推断 (附答案)判断alpha,n与mu,sigma的估计区间长度的关系
  11. 3.30华为笔试第三题
  12. OA软件详细功能模块列表
  13. 你真的理解 Kubernetes 中的 requests 和 limits 吗?
  14. 华为鲲鹏云主机编译安装MySQL 8.0.17
  15. Photoshop调色教程
  16. 盛世昊通打造线上线下融合的百业联盟商业生态
  17. Python深度学习十大核心算法!
  18. 高屋建瓴学机器学习/深度学习
  19. Share 很喜欢的派大星图片
  20. [原创]持续给力:jQuery实现表格隔行变色效果案例详解

热门文章

  1. 《Cocos2D-x权威指南》——3.7 容器类
  2. WPF/Silverlight中MVVM运用
  3. 父进程给子进程传参数
  4. spatial Statistics
  5. 我们来说一说TCP神奇的40ms
  6. netty源码解解析(4.0)-5 线程模型-EventExecutorGroup框架
  7. 第三周读书笔记《程序员修炼之道》
  8. Winform用Post方式打开IE
  9. MFC_Combo_Box_用法(下拉框)
  10. C++_类和对象_封装_属性和行为做为整体_封装案例---C++语言工作笔记036