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)
}

  

猜你喜欢

转载自www.cnblogs.com/Essaycode/p/12677699.html