zoukankan      html  css  js  c++  java
  • 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)
    }
    

      

  • 相关阅读:
    LightOJ 1422 Halloween Costumes(区间dp)
    zoj 3537 Cake(区间dp)
    POJ 2955 Brackets(区间dp)
    HDU 1058 Humble Numbers(dp)
    uva 10934 Dropping water balloons(转载)
    树形dp
    Manacher算法求回文半径
    poj-1236.network of schools(强连通分量 + 图的入度出度)
    hdu-2255.奔小康赚大钱(最大权二分匹配)
    poj-2289.jamies contact groups(二分答案 + 二分多重匹配)
  • 原文地址:https://www.cnblogs.com/Essaycode/p/12677699.html
Copyright © 2011-2022 走看看