美文网首页
Go语言之面向对象oop

Go语言之面向对象oop

作者: 测试探索 | 来源:发表于2020-06-03 06:15 被阅读0次
    Go语言的结构体嵌套:

    1.模拟继承性,在下列结构中,B要访问A的属性,可以直接通过“.”来访问或者调用

    type A struct {
        field
    }
    type B struct{
        A //匿名字段
    }
    package main
    
    import "fmt"
    
    func main(){
    //面向对象:oop
    
    //   1。创建父类的对象
        p1 := Person{name:"张三",age:30}
        fmt.Println(p1)
        fmt.Println(p1.name,p1.age)
    
    //    2.创建子类的对象
        s1 := Student{Person{name:"李四",age:18},"中学"}
        fmt.Println(s1)
    
        s2 := Student{Person:Person{name:"王五",age:17},school:"北京大学"}
        fmt.Println(s2)
    
        var s3 Student
        s3.Person.name = "rose"
        s3.Person.age = 15
        s3.school = "清华大学"
    
    //  提升字段,Person里的name和age,相当于Student就是提升字段,Student可以直接访问Person中的字段
    
        s3.name = "赵六"
        s3.age = 16
        fmt.Println("s3是: ",s3)
    
    }
    
    //定义父类
    type Person struct {
        name string
        age int
    }
    
    type Student struct {
        Person //模拟继承结构
        school string //子类的新增属性
    }
    
    //结果
    {张三 30}
    张三 30
    {{李四 18} 中学}
    {{王五 17} 北京大学}
    s3是:  {{赵六 16} 清华大学}
    
    
    1. 模拟聚合关系,在上一篇文章,D要访问C中的字段需要通过c来访问
    type C struct{
        field
    }
    
    type D struct{
        c C //聚合关系
    }
    

    相关文章

      网友评论

          本文标题:Go语言之面向对象oop

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