本篇文章介绍go语言中,面向对象编程中继承与接口的区别。通过案列剖析,进一步加深对两者理解。
一、go语言的面向对象编程概述
我对于Go语言面向对象编程理解有以下五点:
1、Golang支持面向对象编程(OOP[object oriented programming]),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言。所以说Golang支持面向对象编程特性。
2、Golang没有类(class),Go语言的结构体(struct)和其它编程语言的类(class)有同等的地位,可以理解Golang是基于struct来实现OOP特性的。
3、Golang面向对象编程非常简洁,去掉了传统OOP语言的继承、方法重载、构造函数和析构函数、隐藏的this指针等等
4、Golang有面向对象编程的继承,封装和多态的特性,只是实现的方式和其它OOP语言不一样,比如继承 :Golang没有extends 关键字,继承是通过匿名字段来实现;多态是通过接口来实现的。
5、Golang面向对象(OOP)很优雅,OOP本身就是语言类型系统(type system)的一部分,通过接口(interface)关联,耦合性低,也非常灵活。
总之,Golang开发中面向接口编程是非常重要的特性。
二、案例剖析
案例:实现猴子天生会爬树,通过学习会飞翔和游泳
代码如下:
ackage main
import (
"fmt&#