美文网首页
嵌套类型

嵌套类型

作者: Gaterny | 来源:发表于2018-11-30 14:14 被阅读0次
    // 嵌套类型,也就是继承
    package main
    
    import "fmt"
    
    // 内部类型
    type user struct {
        name string
        age int
    }
    
    // 外部类型
    type admin struct {
        user
        email string
    }
    
    //定义内部类型方法
    func (u user) inner(){
        fmt.Println("user method")
    }
    
    func (a admin) inner(){
        fmt.Println("admin method")
    }
    
    func main() {
        ad := admin{user{name: "lihua", age: 25}, "scusong@foxmail.com"}
        fmt.Println(ad.user.name)
        fmt.Println(ad.age)
        fmt.Println(ad.email)  //只能直接调用
    
        // 覆盖方法调用
        ad.user.inner()   //user method
        ad.inner()    //admin method
    }
    /*
    对于内部类型的属性和方法访问上,我们可以用外部类型直接访问,也可以通过内部类型进行访问;
    但是我们为外部类型新增的方法属性字段,只能使用外部类型访问,因为内部类型没有这些。
    
    外部和内部方法同名时,内部方法会被覆盖
    */
    

    相关文章

      网友评论

          本文标题:嵌套类型

          本文链接:https://www.haomeiwen.com/subject/lhkhcqtx.html