爬行的蜗牛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: golang Linux PHP
查看: 151|回复: 0

golang接口

[复制链接]

124

主题

40

回帖

989

积分

管理员

积分
989
发表于 2024-10-26 16:27:31 | 显示全部楼层 |阅读模式
  1. package main

  2. import "fmt"

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

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

  18.         testInterface(m1)
  19.         testInterface(f1)

  20.         var usb USB
  21.         usb = m1
  22.         usb.start()
  23.         usb.end()
  24. }

  25. // 1.定义接口
  26. type USB interface {
  27.         start()
  28.         end()
  29. }

  30. // 2.实现类
  31. type Mouse struct {
  32.         name string
  33. }
  34. type FlashDisk struct {
  35.         name string
  36. }

  37. func (m Mouse) start() {
  38.         fmt.Println(m.name, "鼠标,准备就绪,可以开始工作了,点点点。。。")
  39. }
  40. func (m Mouse) end() {
  41.         fmt.Println(m.name, "结束工作,可以安全退出。。。")
  42. }
  43. func (f FlashDisk) start() {
  44.         fmt.Println(f.name, "准备开始工作,可以进行数据的存储。。。")
  45. }
  46. func (f FlashDisk) end() {
  47.         fmt.Println(f.name, "准备开始工作,可以进行数据的存储。。。")
  48. }

  49. // 3.测试方法
  50. func testInterface(usb USB) {
  51.         usb.start()
  52.         usb.end()
  53. }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表