go test 私有方法_聊聊:Go 面向对象编程

本文探讨了 Go 语言中的面向对象编程特性,包括封装、组合、访问规范和成员方法。尽管 Go 语言没有继承,但通过组合和接口实现了多态。文中通过 Animal、Cat 和 Dog 结构体的例子,展示了如何在 Go 中创建和使用方法,以及如何利用接口实现多态。最后,强调了 Go 语言在面向对象设计上的独特之处,以及如何有效利用这些特性进行编程。
摘要由CSDN通过智能技术生成

今天有人在论坛上问我,怎么在不使用内嵌的方式下更好的使用继承。很重要的一点是,每个人都应当考虑 Go 而不是他们使用的其他语言。我不会告诉你我在 Go 的早期实现中删除了多少代码,因为这些都不重要。语言设计师拥有多年的经验和知识,事后审校有助于创建一个快速、精简而有趣的语言。

我认为 Go 是一个很不错的面向对象编程语言。诚然,它有封装和类型成员方法,但是它还是缺少继承和传统的多态性。对于我来说,继承用处不大,除非你想要实现多态。Go 实现了接口类型,所以继承就显得不那么重要了。Go 完成了 OOP 最佳的部分,省略了其余部分并为我们提供了更好的编写多态代码的方法。

以下是 Go 中关于 OOP 的一个简单描述。最开始是三个结构:

ef9f6d84e01e46cefdc407e7d0474850.png

你可能在其他的 OOP 编程示例中见过这三个结构。我们有一个基础结构和两个基于这个基础结构衍生来的结构。结构 Animal 包含所有动物的共性,而另外两个结构则特指猫和狗。

结构 Animal 的所有的成员属性除了私有的 mean 以外都是公有的,私有属性以小写字母开头。在 Go 中,对于变量、结构、属性和方法等,由第一个字母决定其访问规范。大写字母表示公有,而小写字母表示私有。

注:Go 中的私有和公有的概念并不完全正确。

https://www.ardanlabs.com/blog/2014/03/exportedunexported-identifiers-in-go.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值