zoukankan      html  css  js  c++  java
  • go 接口一系列的方法的集合

    //接口 就是一系列的方法集合
    type Inner interface {
        run()
        speak()
    }
    type Piii struct {
        name string
        id int
    
    }
    type Diii struct {
        name string
        id int
        bol bool
    
    }
    func(p Diii) run()  {
        fmt.Println("我是普通",p.name)
    }
    func(p Diii) speak()  {
        fmt.Println("我是会员",p.name)
    }
    
    
    
    func(p Piii) run()  {
        fmt.Println("我是普通",p.name)
    }
    func(p Piii) speak()  {
        fmt.Println("我是会员",p.name)
    }
    
    
    func main() {
    
        pd := Piii{name:"腾讯"}
        dd := Diii{name:"爱奇艺"}
        //var d Inner
        //d = pd
        //d = dd
        //fmt.Println(d)}
        speak(dd)
        speak(pd)}
    //func speak(p Inner)  {
    //    a:= p.(Diii)
    //    fmt.Println(a.bol)
    //    p.speak()
    //}
    func speak(p Inner)  {
        switch a:=p.(type) {
        case Piii:
            //判断好了,你是普通鸭子,把鸭子名字拿出来
            fmt.Println("你是普通")
            fmt.Println(a.name)
        case Diii:
            //判断好了,你是唐老鸭,把唐老鸭的wife拿出来
            fmt.Println("你是会员")
    
            fmt.Println(a.bol)
        }}
    //空接口
    type E interface {
    
    }
    type Tduck struct {
        name string
        id int
        bol bool
    }
    
    func main() {
        test(1)
        test("ssss")
        test(Tduck{})
        test(10.45)
    }
    
    func test(a interface{})  {
        switch a.(type) {
        case int:
            fmt.Println("int")
        case string:
            fmt.Println("str")
        case Tduck:
            fmt.Println("Tduck")
        default:
            fmt.Println("default")
        }
    }
    //空接口   继承多个接口
    type E interface {
        qqq()
    }
    type F interface {
        www() int
    }
    
    
    type Inner struct {
        name string
        age int
    }
    
    func (a Inner) qqq()  {
        fmt.Println(a.name,a.age)
    }
    func (a Inner) www() int {
        return a.age
    }
    func main() {
        e:=Inner{name:"yangxin",age:10}
        var s E = e
        s.qqq()
        e.qqq()
        res := e.www()
        fmt.Println(res)
    }
  • 相关阅读:
    周末班:Python基础之面向对象基础
    二分查找
    各种推导式合集
    周末班:Python基础之函数进阶
    Python基础之迭代器和生成器
    Django中的信号
    周末班:Python基础之并发编程
    周末班:Python基础之网络编程
    Python基础之面对对象进阶
    Python基础之协程
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/12031765.html
Copyright © 2011-2022 走看看