浅谈golang语言中的OOP

浅谈golang语言中的OOP

理解go语言中面向对象的思想,就是理解struct和interface的过程。简单来说go语言中的对象就是struct,面向对象的思想就是一种组合思想,以struct为基本的单元,支持struct之间的组合和嵌入,并可以为struct绑定方法。那么如何完成对对象方法的调用呢?直接由struct的实例来调用他所属的方法,这样显然是一种调用方式,但是这样的弊端显而易见,当有多个对象有相同的方法时,我们无法穷举出所有对象(go的语法中可没有继承的概念哦),因为有些对象在当时的上下文中并不存在(其实就是如何表征对象的问题),所有我们需要对方法进行分类。这里就抽象出interface的概念,interface是由单个和多个方法组成,任何struct实现了某个interface中的所有方法,即可认为该struct加入了该interface中(注意:这里所说的加入指的是一种关系。比如:你做为struct,这里有2个协会篮球协会和排球协会做为2个interface,篮球协会有个方法,要求会打篮球,排球协会有个方法,要求会打排球,当你既会打篮球,也会打排球,那你就加入了这2个协会,你和2个协会之间就形成了一种关系。)。同时interface也能表征struct,通过一种反射机制,从interface又能获取原本的struct。interface就像是struct脸上的一种面具,struct可以有多个面具戴在脸上,揭开任一面具都能知道你是谁。一种面具代表一类,也就是通过一种面具可以局部表征拥有该面具的struct。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值