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

      

     

     

  • 相关阅读:
    90后是怎么了
    从GNOME切换到KDE了
    Ubuntu 12.04中安装Evolus Pencil原型图绘制软件
    wine qq 2012 for linux
    发现来博客园比去csdn早
    [转]代理(Proxy)和委派(Delegate)的区别
    Debian Stable分支对于开发者的意义[续软件系统。。。]
    xj3d svn org.web3d目录结构分析
    不自觉的就陷入OS发行版选择的泥潭
    DNN Test
  • 原文地址:https://www.cnblogs.com/sunlong88/p/11180555.html
Copyright © 2011-2022 走看看