Golang-面向对象编程三大特性-多态
Posted essaycode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang-面向对象编程三大特性-多态相关的知识,希望对你有一定的参考价值。
Golang-面向对象编程三大特性-多态
基本介绍
变量(实例)具有多种形态。面向对象的第三大特征,在 Go 语言,多态特征是通过接口实现的。可以按照统一的接口来调用不同的实现。这时接口变量就呈现不同的形态。
快速入门
在前面的 Usb 接口案例,Usb usb ,既可以接收手机变量,又可以接收相机变量,就体现了 Usb 接口 多态特性。[点明]
接口体现多态的两种形式
多态参数
在前面的 Usb 接口案例,Usb usb ,即可以接收手机变量,又可以接收相机变量,就体现了 Usb 接口 多态。
多态数组
演示一个案例:给 Usb 数组中,存放 Phone 结构体 和 Camera 结构体变量
package main import ( "fmt" ) type Usb interface { //声明了两个没有实现的方法Start() Stop() } type Phone struct { name string } //让 Phone 实现 Usb 接口的方法 func (p Phone) Start() { fmt.Println("手机开始工作。。。") } func (p Phone) Stop() { fmt.Println("手机停止工作。。。") } type Camera struct { name string } // 让 Camera 实现 Usb 接口的方法 func (c Camera) Start() { fmt.Println("相机开始工作。。。") } func (c Camera) Stop() { fmt.Println("相机停止工作。。。") } func main() { //定义一个 Usb 接口数组,可以存放 Phone 和 Camera 的结构体变量 //这里就体现出多态数组 var usbArr [3]Usb usbArr[0] = Phone{"vivo"} usbArr[1] = Phone{"小米"} usbArr[2] = Camera{"尼康"} fmt.Println(usbArr) }
以上是关于Golang-面向对象编程三大特性-多态的主要内容,如果未能解决你的问题,请参考以下文章