zoukankan      html  css  js  c++  java
  • 74_Go基础_1_41 结构体匿名字段

     1 package main
     2 
     3 import "fmt"
     4 
     5 // 1.定义父类
     6 type Person struct {
     7     name string
     8     age  int
     9 }
    10 
    11 // 2.定义子类
    12 type Student struct {
    13     Person        // 模拟继承结构
    14     school string // 子类的新增属性
    15 }
    16 
    17 func main() {
    18     /*
    19         面向对象:OOP
    20 
    21         Go语言的结构体嵌套:
    22             1.模拟继承性:is - a
    23                 type A struct{
    24                     field
    25                 }
    26                 type B struct{
    27                     A //匿名字段
    28                 }
    29 
    30             2.模拟聚合关系:has - a
    31                 type C struct{
    32                     field
    33                 }
    34                 type D struct{
    35                     c C //聚合关系
    36                 }
    37     */
    38 
    39     // 1.创建父类的对象
    40     p1 := Person{name: "张三", age: 30}
    41     fmt.Println(p1)
    42     fmt.Println(p1.name, p1.age)
    43 
    44     // 2.创建子类的对象
    45     s1 := Student{Person{"李四", 17}, "千锋教育"}
    46     fmt.Println(s1) // {{李四 17} 千锋教育}
    47 
    48     s2 := Student{Person: Person{name: "rose", age: 19}, school: "北京大学"}
    49     fmt.Println(s2) // {{rose 19} 北京大学}
    50 
    51     var s3 Student
    52     s3.Person.name = "王五"
    53     s3.Person.age = 19
    54     s3.school = "清华大学"
    55     fmt.Println(s3) // {{王五 19} 清华大学}
    56 
    57     s3.name = "Ruby" // 可以简写
    58     s3.age = 16      //
    59     fmt.Println(s3)  // {{Ruby 16} 清华大学}
    60 }
  • 相关阅读:
    【重启C++】-- 序
    关于值传递和指针传递
    *** 没有规则可以创建目标“test”。 停止。
    对无法解析的外部符号
    [转]解决在库中已定义的办法
    对库的选择顺序上的库文件
    去除MFC特性之一
    程序集之·二(修改一)
    使用excel4j生成excel文件
    Java拟合算法
  • 原文地址:https://www.cnblogs.com/luwei0915/p/15630237.html
Copyright © 2011-2022 走看看