yycvip 发表于 2024-10-26 16:27:31

golang接口

package main

import "fmt"

func main() {
      /*
                        接口:interface
                        在Go中,接口是一组方法签名。
                        当某个类型为这个接口中的所有方法提供了方法的实现,它被成为实现接口。
                        Go语言中,接口和类型的实现关系,是非侵入式

                1。当需要接口类型的对象时,可以使用任意实现类对象代替
                2.接口对象不能访问实现类中的属性
      */
      //1.创建Mouse
      m1 := Mouse{"罗技小蓝"}
      fmt.Println(m1.name)
      //2.创建FlashDisk
      f1 := FlashDisk{"闪迪64G"}
      fmt.Println(f1.name)

      testInterface(m1)
      testInterface(f1)

      var usb USB
      usb = m1
      usb.start()
      usb.end()
}

// 1.定义接口
type USB interface {
      start()
      end()
}

// 2.实现类
type Mouse struct {
      name string
}
type FlashDisk struct {
      name string
}

func (m Mouse) start() {
      fmt.Println(m.name, "鼠标,准备就绪,可以开始工作了,点点点。。。")
}
func (m Mouse) end() {
      fmt.Println(m.name, "结束工作,可以安全退出。。。")
}
func (f FlashDisk) start() {
      fmt.Println(f.name, "准备开始工作,可以进行数据的存储。。。")
}
func (f FlashDisk) end() {
      fmt.Println(f.name, "准备开始工作,可以进行数据的存储。。。")
}

// 3.测试方法
func testInterface(usb USB) {
      usb.start()
      usb.end()
}


页: [1]
查看完整版本: golang接口