首页 > 其他分享 >GO语言自学_005_类的嵌套_类的继承

GO语言自学_005_类的嵌套_类的继承

时间:2022-09-05 08:11:38浏览次数:76  
标签:Println 005 fmt t1 嵌套 Human GO s1 name

package main

import "fmt"

// 定义一个Human类

type Human struct {
  // 属性
  name   string
  age    int
  gender string
}

// 定义一个学生类嵌套Human类

type Student struct {
  hum    Human // 包含Human类型的变量,是嵌套
  school string
  score  float64
}

// 定义一个老师类,继承Human类

type Teacher struct {
  Human   //直接写Human类型,没有字段名,是继承
  subject string
}

// 外部绑定一个方法

func (h *Human) Eat() {
  fmt.Println("this is ", h.name, ", he/she eats.")
}

func main() {
  s1 := Student{
  // hum是个类的嵌套
  hum: Human{
    name:   "Lily",
    age:    12,
    gender: "female",
  },
  school: "Michigan University",
  score:  100,
}
fmt.Println("===== 类的嵌套使用 =====")
fmt.Println("s1:", s1.hum.name)
fmt.Println("s1:", s1.school)
fmt.Println("s1:", s1.score)
s1.hum.Eat()

t1 := Teacher{
  // 这里是继承来的
  Human: Human{
  age:    30,
  name:   "Wang",
  gender: "female",
  },
  subject: "Chinese",
}
fmt.Println("===== 类的继承使用 =====")
fmt.Println("t1:", t1.name)
fmt.Println("t1:", t1.subject)
fmt.Println("t1:", t1.gender)
// 这里继承的时候,虽没定义字段名称,但会自动创建一个默认同名字段。
// 目的是防止子类父类出现同名的状况。
fmt.Println("t1:", t1.Human.age)
t1.Eat()
}

标签:Println,005,fmt,t1,嵌套,Human,GO,s1,name
From: https://www.cnblogs.com/cloucodeforfun/p/16656740.html

相关文章

  • stm32f103zet红牛开发板STMcubeMX hal库版:03旺宝-红牛-蜂鸣器 SysTick应ongoi
    程序运行后,蜂鸣器发出类似报警声.蜂鸣器在  pb2上接着。这是一个无源蜂鸣器。不是给电就响。得给一定频率的信号才行。这里用定时器跟gpio生成一定频率的方波。  ......
  • 记录一次go打印金字塔,空心金字塔
    金字塔packagemainimport"fmt"//案例说明:用户输入金字塔高度,打印金字塔funcmain(){//思路整理://需要获得的数据//1.获得金字塔高度......
  • 【django学习-08】视图之HttpResponse文件下载
    一:前言:响应内容除了返回网页信息外,还可以实现文件下载功能,是网站常用的功能之一。Django提供三种方式实现文件下载功能,分别是HttpResponse,StreamingHttpResponse和FileRe......
  • go编译c报错 cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
    go编译c报错cc1.exe:sorry,unimplemented:64-bitmodenotcompiledin说明当前gcc是32位,无法在当前64位机器上正常工作,需要更新gcchttps://sourceforge.net/project......
  • go 闭包和装饰器
    闭包go中实现闭包需要依赖匿名函数packagemainimport("fmt")funcfoo(namestring)func(){returnfunc(){fmt.Println("hello",name)......
  • 【2022.9.2】Django框架(网页伪静态、视图层、模板层)
    学习内容概要网页伪静态视图层三板斧JsonResponseform表单上传文件FBV与CBV(核心)CBV源代码(面向对象)模板层模板语法传值模板语法之过滤器模板语法之标签......
  • #include<algorithm>函数
    1、查找函数(n.find("="))从前往后找:n.find();#include<bits/stdc++.h>#include<algorithm>usingnamespacestd;stringn;intmain(){ cin>>n; intlen=n.find('=......
  • [Go] Functions
    Functioncanreturnmultivalues:funcprintAge(ageint)(int,int){ return12,age}funcmain(){ age1,age2:=printAge(8) fmt.Println(age1) fmt.Print......
  • Django 环境安装
    Django是基于Python的Web框架,依赖Python环境,所以需要提前安装好Python解释器。关于Python的安装,请参考https://www.liujiangblog.com站点中Python教程的相关部分,这里不再......
  • 1530 bingo 不是题解
    *2600的死活卡住出不来,想啊,很想啊(指remake21*21的方阵,每个位置有一个概率是1,求凑出来bingo的概率这种题目先考虑容斥,那就是1-凑不出bingo的概率。直接做是2^44的,我做牛......