go的oop与传统的oop的区别

题目来源:易鲸云

答案

go语言-面向对象编程说明

1:go语言支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言。所以我们说go语言 支持面向对象编程特性 是比较准确的。

2:go语言没有类(class),go语言的结构体(struct)和其它编程语言的类(class)有同等的地位,你可以理解go语言go语言是基于struct来实现OOP特性的。

3:go语言面向对象编程非常简洁,去掉了传统的OOP语言的继承、方法重载、构造函数和析构函数、隐藏的this指针等等

4:go语言仍然有面向对象编程的继承,封装和多态的特性,只是实现的方式和其它OOP语言不一样,比如继承:go语言没有extends关键字,继承是通过匿名字段来实现。

5:go语言面向对象很优雅,OOP本身就是语言类型系统的一部分,通过接口(interface)关联,耦合性低,也非常灵活,也就是说在go语言中面向接口编程是非常重要的特性。