zoukankan      html  css  js  c++  java
  • golang interface

    package main
    import (
        "fmt"
    )
    
    //声明/定义一个接口
    type Usb interface {
        //声明了两个没有实现的方法
        Start() 
        Stop()
    }
    
    
    //声明/定义一个接口
    type Usb2 interface {
        //声明了两个没有实现的方法
        Start() 
        Stop()
        Test()
    }
    
    
    
    type Phone struct {
    
    }  
    
    //让Phone 实现 Usb接口的方法
    func (p Phone) Start() {
        fmt.Println("手机开始工作。。。")
    }
    func (p Phone) Stop() {
        fmt.Println("手机停止工作。。。")
    }
    
    type Camera struct {
    
    }
    //让Camera 实现   Usb接口的方法
    func (c Camera) Start() {
        fmt.Println("相机开始工作~~~。。。")
    }
    func (c Camera) Stop() {
        fmt.Println("相机停止工作。。。")
    }
    
    
    //计算机
    type Computer struct {
    
    }
    
    //编写一个方法Working 方法,接收一个Usb接口类型变量
    //只要是实现了 Usb接口 (所谓实现Usb接口,就是指实现了 Usb接口声明所有方法)
    func (c Computer) Working(usb Usb) {
    
        //通过usb接口变量来调用Start和Stop方法
        usb.Start()
        usb.Stop()
    }
    
    func main() {
    
        //测试
        //先创建结构体变量
        computer := Computer{}
        phone := Phone{}
        camera := Camera{}
    
        //关键点
        computer.Working(phone)
        computer.Working(camera) //
    }

     

     

    package main
    
    import "fmt"
    type Ainterface interface {
    	Say()
    }
    
    type Binterface interface {
    	Hello()
    }
    
    type Monster struct {
    
    }
    
    func (m Monster) Hello() {
    	fmt.Println("hello ()")
    }
    
    func (m Monster) Say() {
    	fmt.Println("Say ()")
    }
    
    
    
    func main()  {
    	var monster Monster
    	var a Ainterface = monster
    	var b Binterface = monster
    	a.Say()
    	b.Hello()
    
    }
    

      

     

     

  • 相关阅读:
    【CF833E】Caramel Clouds
    【LG2183】[国家集训队]礼物
    (ex)Lucas总结
    【CF527C】Glass Carving
    【CF833D】Red-Black Cobweb
    【LG4631】[APIO2018]Circle selection 选圆圈
    volatile梳理
    ThreadLocal梳理
    java线程基础梳理
    TCP/IP
  • 原文地址:https://www.cnblogs.com/sunlong88/p/11180555.html
Copyright © 2011-2022 走看看