• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

74_Go基础_1_41结构体匿名字段

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 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 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go包中的init()函数发布时间:2022-07-10
下一篇:
go mod发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap