Bruce Blog Bruce Blog
首页
  • CentOS
  • Ubuntu-Debian
  • 系统网络
  • 系统辅助工具
  • MySQL
  • Redis
  • Mongodb
  • Docker基础
  • Container基础
  • Kubernetes

    • Kubernetes基础
    • Kubernetes辅助
  • Container-Network
  • Jenkins
  • Gitlab
  • ArgoCD
  • Ansible
  • Terraform
  • AWS
  • MQ
  • NGINX
  • JumpServer
  • 基础
  • 函数模块
  • 框架
  • 基础

    • Golang环境
    • 语法
    • 数据类型与运算符
    • 分支语句
    • 循环语句
    • 数组
    • 切片
    • Map
    • String
    • 函数
    • 包的管理
    • 指针
    • 结构体
    • Go语言中的OOP
    • 方法和接口
    • 错误处理
  • Go进阶

    • Go进阶
  • Go框架

    • Go框架
  • Golang辅助

    • Golang辅助
  • CSS
  • HTML
  • JavaScript
  • 前端辅助
  • 常用命令
  • 性能监控工具
  • Windows下Docker使用
  • 日常学习
  • 其他导航

Bruce Tao

运维界的该溜子
首页
  • CentOS
  • Ubuntu-Debian
  • 系统网络
  • 系统辅助工具
  • MySQL
  • Redis
  • Mongodb
  • Docker基础
  • Container基础
  • Kubernetes

    • Kubernetes基础
    • Kubernetes辅助
  • Container-Network
  • Jenkins
  • Gitlab
  • ArgoCD
  • Ansible
  • Terraform
  • AWS
  • MQ
  • NGINX
  • JumpServer
  • 基础
  • 函数模块
  • 框架
  • 基础

    • Golang环境
    • 语法
    • 数据类型与运算符
    • 分支语句
    • 循环语句
    • 数组
    • 切片
    • Map
    • String
    • 函数
    • 包的管理
    • 指针
    • 结构体
    • Go语言中的OOP
    • 方法和接口
    • 错误处理
  • Go进阶

    • Go进阶
  • Go框架

    • Go框架
  • Golang辅助

    • Golang辅助
  • CSS
  • HTML
  • JavaScript
  • 前端辅助
  • 常用命令
  • 性能监控工具
  • Windows下Docker使用
  • 日常学习
  • 其他导航
  • 基础

    • Golang环境

    • 语法

    • 数据类型与运算符

    • 分支语句

    • 循环语句

    • 数组

    • 切片

    • Map

    • String

    • 函数

    • 包的管理

    • 指针

    • 结构体

    • Go语言中的OOP

    • 方法和接口

      • 方法和接口
      • 方法
      • 接口
      • 接口嵌套
        • 接口断言
        • type关键字
      • 错误处理

    • Go进阶

    • Go框架

    • Golang辅助

    • Golang
    • 基础
    • 方法和接口
    Bruce
    2022-10-27
    目录

    接口嵌套

    # 接口嵌套
    • Go语言在接口是允许嵌套的(可以把嵌套理解为继承)

    示例代码

    package main
    
    import "fmt"
    
    func main() {
    	/*
    		接口嵌套
    	*/
    
    	var cat Cat = Cat{}
    	cat.test1()
    	cat.test2()
    	cat.test3()
    
    	fmt.Println("---------------")
    	var a1 A = cat
    	a1.test1()
    
    	fmt.Println("---------------")
    	var b1 B = cat
    	b1.test2()
    
    	fmt.Println("----------------")
    	var c1 C = cat
    	c1.test1()
    	c1.test2()
    	c1.test3()
    
    	fmt.Println("----------------")
    	//var c2 C =a1
    	var a2 A = c1
    	a2.test1()
    }
    
    type A interface {
    	test1()
    }
    
    type B interface {
    	test2()
    }
    
    type C interface {
    	A
    	B
    	test3()
    }
    
    type Cat struct { //如果想实现接口C,那么不知要实现接口C的方法,还要实现接口A、接口B中的方法
    }
    
    func (c Cat) test1() {
    	fmt.Println("test1()...")
    }
    
    func (c Cat) test2() {
    	fmt.Println("test2()...")
    }
    
    func (c Cat) test3() {
    	fmt.Println("test3()...")
    }
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    上次更新: 2024/04/09, 16:48:42
    接口
    接口断言

    ← 接口 接口断言→

    最近更新
    01
    AWS NAT-NetWork-Firwalld配置(一)
    04-09
    02
    AWS NAT-NetWork-Firwalld配置(二)
    04-09
    03
    kubernetes部署minio对象存储
    01-18
    更多文章>
    Theme by Vdoing | Copyright © 2019-2024 Bruce Tao Blog Space | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式