神奇的go语言(面向对象)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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语言(面向对象)相关推荐
- c语言面向对象编程中的类_C ++中的面向对象编程
c语言面向对象编程中的类 Object oriented programming, OOP for short, aims to implement real world entities like ...
- C语言面向对象编程(四):面向接口编程
Java 中有 interface 关键字,C++ 中有抽象类或纯虚类可以与 interface 比拟,C 语言中也可以实现类似的特性. 在面试 Java 程序员时我经常问的一个问题是:接口和抽象类有 ...
- C语言面向对象编程(二):继承详解
在 C 语言面向对象编程(一)里说到继承,这里再详细说一下. C++ 中的继承,从派生类与基类的关系来看(出于对比 C 与 C++,只说公有继承): 派生类内部可以直接使用基类的 public .p ...
- C语言面向对象编程(六):配置文件解析
在实际项目中,经常会把软件的某些选项写入配置文件. Windows 平台上的 INI 文件格式简单易用,本篇文章利用<C语言面向对象编程(五):单链表实现>中实现的单链表,设计了一个&qu ...
- java 168转换成861_java实验-java语言面向对象编程基础
java实验-java语言面向对象编程基础 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 8.90 积分 广州大学学生实验报告广州大学学生实验报告 ...
- Go语言面向对象编程
系统类型 为类型添加方法 Go语言的类型,除了指针之外,都可以组合出自己的方法. type Integer intfunc (a Integer) Less(b Integer) bool {retu ...
- 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态
介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...
- 我所偏爱的 C 语言面向对象编程范式
我所偏爱的 C 语言面向对象编程范式 面向对象编程不是银弹.大部分场合,我对面向对象的使用非常谨慎,能不用则不用.相关的讨论就不展开了. 但是,某些场合下,采用面向对象的确是比较好的方案.比如 UI ...
- c语言面向对象编程显示,c语言面向对象编程
场景:C语言面向对象编程(6):配置文件解析 C语言面向对象编程(六):配置文件解析 在实际项目中,经常会把软件的某些选项写入配置文件. Windows 平台上的 INI 文件格式简单易用,本篇文章利 ...
- bnu1209 1--0的神奇游戏 C语言版
北京师范大学珠海分校 Judge Online of ACM ICPC 1209 1-->0的神奇游戏 C语言版 #include <stdio.h> int main(){ int ...
最新文章
- wxWidgets:wxWidgets 示例演示网络相关功能
- 如何进行服务器备份操作系统,如何在Linux服务器上做备份和恢复
- 一步步分析-C语言如何面向对象编程
- mysql适合什么阵列_如何选择最合适的RAID级别
- Acoustica 7 Premium Edition for Mac(音频处理软件) v7.3.28
- rtsp转rtmp服务linux,ubuntu安装流媒体服务器(nginx+rtmp,rtsp转rtmp,rtsp转m3u8)
- 渗透工具—反制爬虫之Burp Suite RCE
- 10.12.1 安装cocoapods及使用详解
- ID3、C4.5、CART决策树算法解析(关键内容讲解)
- 大学数学实验习题--统计推断 (附答案)判断alpha,n与mu,sigma的估计区间长度的关系
- 3.30华为笔试第三题
- OA软件详细功能模块列表
- 你真的理解 Kubernetes 中的 requests 和 limits 吗?
- 华为鲲鹏云主机编译安装MySQL 8.0.17
- Photoshop调色教程
- 盛世昊通打造线上线下融合的百业联盟商业生态
- Python深度学习十大核心算法!
- 高屋建瓴学机器学习/深度学习
- Share 很喜欢的派大星图片
- [原创]持续给力:jQuery实现表格隔行变色效果案例详解
热门文章
- 《Cocos2D-x权威指南》——3.7 容器类
- WPF/Silverlight中MVVM运用
- 父进程给子进程传参数
- spatial Statistics
- 我们来说一说TCP神奇的40ms
- netty源码解解析(4.0)-5 线程模型-EventExecutorGroup框架
- 第三周读书笔记《程序员修炼之道》
- Winform用Post方式打开IE
- MFC_Combo_Box_用法(下拉框)
- C++_类和对象_封装_属性和行为做为整体_封装案例---C++语言工作笔记036