golang 是面向对象的么


本文摘自php中文网,作者(*-*)浩,侵删。

go语言中,虽然没有明确提出面向对象的概念,但是基于已有的语法设计,我们也可以写出面向对象的代码。go语言中的面向对象是借助struct结构体实现的。 (推荐学习:go)

Golang实现面向对象的两个关键类型是struct和interface,其中struct类似C++的普通类类型,interface则对应抽象类类型。

与C++采用public/protected/private指示成员和方法的可见性不同,Golang采用大小写标识可见性,即大写字母开头的成员/方法对外可见,小写开头的则属于类的私有成员,外部不可以直接访问。

此外,Golang与C++在类类型的定义上还有一个重要区别,那就是Golang在struct内只需要声明类的成员变量,而不需要在类定义体内声明或定义所有的方法,方法定义都在struct之外完成。

Golang通过struct定义类的属性,通过在func定义时传入类对象的方式定义类的方法,其中属性和方法的公有/私有属性是通过首字母的大小写决定的。

1

2

3

4

5

type Student struct {

    name  string

    age   int

    major string

}

Golang没有完整实现继承,而是通过组合的方式实现。组合类(子类)可以直接调用被组合类(基类)的公有方法,访问基类的公有属性,子类也可以定义自己的属性,以及实现自己特有的方法。

Golang的设计哲学之一就是简洁,通过大小写区分成员/方法的公有/私有属性,通过组合的方式实现继承,都是简洁哲学的体现。

Golang的interface类型定义的也是一个抽象的基类,它是一组方法的集合,任何完整实现这些方法的类型都被称为该接口的实现。由于抽象与多态是相辅相成的,或者说抽象的目的就是为了实现多态。

以上就是golang 是面向对象的么的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

go strings

golang xorm mysql代码生成器(java,go)

go语言基础之结构体

golang怎么编写php扩展

golang如何做一个服务器?

golang的优势是什么

golang组件化网络服务器框架halia指南

go语言入门教程06 常量

golang调用cmd命令时如何隐藏dos窗口

一周 go world 新鲜事

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...