Golang面向对象编程/接口编程
一.Golang面向对象编程
- 介绍
- 众所周知在编程语言里,面向对象编程是创建一个对象,来模拟实际行为与属性,比如创建一个“人”的对象,那么“人”的身高,年龄,体重,就是这个对象的属性,如果这个对象想要跑步,打篮球,打羽毛球,学英语,那么这个就是对象的方法
- 然而在golang里面并没有像其它编程语言一样有class类或者this指针还有new对象方法,只有一个struct结构体来模拟一个对象实例,当然在struct里面也有对象的三大特性,封装,继承,多态,只是与其它变成语言使用的方法不一样
二.面向对象编程实例
1. 面向对象编程-封装
- 在golang里面的封装指的是,属性私有化,外部不能直接访问更改,必须要调用对象绑定的方法来进行访问内部私有化属性
-现在大家可以看到,在本包是可以直接访问的,如果在别的包就不能访问就需要用方法访问 - 在这可以看到是访问不到,设置不到age属性的,必须要使用方法取设置和获取
- 通过方法可以设置age属性,这就是封装,在方法里可以设置一些必要的条件去保护私有成员
- 模拟一个构造器方法来初始化对象属性
2. 面向对象编程-继承
- 在结构体中,继承是使用匿名结构体进行继承,不管是属性或者方法都可以继承下来,不仅仅可以继承一个结构体也能继承多个结构体
- 大家可以看到,在继承多个结构体后,有相同的字段赋值会报错,因为在golang中继承给字段赋值采用的是就近原则,如果有多个结构体有相同的字段,程序不知道该赋值给哪一个结构体
- 多个结构体有相同属性的话需要这样赋值才行
3. 面向对象编程-多态
- 多态特征是通过接口实现的,可以按照统一的接口来调用不同的视线,这时接口变量就呈现不同的形态
三.Golang接口编程
- 介绍
- 在golang中接口就是interface类型,一个空接口可以接收任何的类型
- 在golang中interface里面不可以声明属性变量,只能声明接口方法,等别个类型进行实现
1.接口编程实例
- 在golang中interface里面不可以声明属性变量,只能声明接口方法
- 在golang中接口就是interface类型,一个空接口可以接收任何的类型