Go语言基础(十二) —— Go语言继承

golang开发工程师-第一步:golang入门基础教学 golang基础知识点,不详细 阅读详情

继承

  • 子类和父类的关系。
  • 子类对象可以直接访问父类的属性和方法
  • 子类可以新增自己的属性和方法。
  • 子类可以重写父类已有的方法。

案例:

package main

import "fmt"

type Parent struct {
	//父类属性
	name string
	age int
	sex string
}
//父类方法
func (fu *Parent)play(){
	fmt.Println("我是父亲,这是我的play方法!")
}
//父类方法
func(fu *Parent)playson(){
	fmt.Println("我是父亲,这是我的playson方法!")
}


type Child struct {
	//子类属性
	Parent
	knowleage string
}

//子类方法重写父类方法
func (son *Child)play(){
	fmt.Println("我是儿子,这是我的play方法")
}

func main() {
	
	parent := new(Parent)
	parent.play()
	parent.playson()
	child := new(Child)
	
	child.play()
	//子类方法继承父类方法
	child.playson()
}

运行结果为:

我是父亲,这是我的play方法!
我是父亲,这是我的playson方法!
我是儿子,这是我的play方法
我是父亲,这是我的playson方法!

 

【教程】快速入门golang Go语言是一种由Google开发的静态类型编程语言,旨在解决C++编译慢、Java内存占用高、Python并发性能差等问题。其核心特性包括简化语法、静态链接、轻量级并发模型(Goroutine和Channel)以及高效的依赖管理。Go源文件结构包含包声明、导入语句、全局变量和函数定义,遵循严格的格式规范,如强制使用未声明变量、特定缩进规则等。变量声明支持显式类型指定、类型推断和短变量声明,常量则使用const关键字定义。数据类型分为基本类型(如整型、浮点型、布尔型)和复合类型(数组、切片、结构体等)。Go通 阅读详情

相关推荐

光栅衍射有入射角时_衍射型多焦点人工晶体光学原理

多焦点人工晶体如何把光线分成多个焦点的?这个问题大部分专业书只是蜻蜓点水,并没有讲明白。希此文粗浅的解释,能帮您加深理解,请多指正。接下来,我将按照一下历史发展的顺序讲解一下:光的认识、菲涅尔灯塔(菲涅尔透镜)、菲涅尔波带盘(半波带盘)、多焦点人工晶体。一:首先复习一下光的认识历史。我们现在都知道光是一种电磁波,具有波粒二相性,但是认识光的本质也经历非常曲折漫长的过程。牛顿时代的几何光...

weixin_28963467的博客 2352

golang 父类调用子类方法、继承多态的实现方式

实现思路 go 语言中,当子类调用父类方法时,“作用域”将进入父类的作用域,看不见子类的方法存在(个人想象的) 我们可以通过参数将子类传递给父类,实现在父类中调用子类方法。 实现方式有两种: 一、 基于接口 定义接口,父子类都实现接口,父类方法接收接口类型参数 特点: 结构简单,思路清晰。 基于接口,轻松应对多级继承的情况。 推荐使用...

weixin_33918357的博客 9013

科研软件|Adobe Photoshop 2024 (PS 2024)

科研软件|Adobe Photoshop 2024 (PS 2024)

m0_55499682的博客 5510

Golang系列(二)之面向对象编程

面向对象编程:        把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)[方法的重写,子类不同于父类的特性]/泛化(generalization)[共性,子类都拥有父类的特性],通过多态(polymorph

胡伟煌的博客 5836

接入 deepseek 实现AI智能问诊

必须包含user角色,用于传递用户输入。system角色可选,用于设置对话背景。多轮对话需要将历史记录添加到messages中。

weixin_51326478的博客 6541

泛微E10 eBuilder低代码平台避坑指南:新手最容易犯的5个错误及解决方案

本文针对泛微E10 eBuilder低代码平台的新手开发者,总结了5个最常见错误及解决方案,包括表单联动配置、流程设计权限、动作流时序、数据加工类型转换和权限管理过度配置等问题。通过实战经验和代码示例,帮助开发者避开常见陷阱,提升开发效率。

weixin_30919429的博客 540

Golang 继承

面向对象编程的三大特性:封装、继承、多态。可见继承是面向对象程序设计中一个重要的概念。Go 作为面向对象的编程语言,自然也支持继承。比较特殊的是 Go 实现继承的方式与其他传统 OOP 语言所有不同,不像 C++ 有专门的继承语法,或者像 Java 中有专门的关键字 extends。// 基类 class Animal {public :};// 子类 class Dog : public Animal {public :};// 基类 public class Animal {};

Doublelv 的博客专栏。 6793

TC3XX - MCAL知识点(十三):IOM EB-tresos配置说明及代码浅析

输入输出监视器(IOM)驱动程序作为比较单元,检查系统外设输出的正确操作,这些输出可以作为监视功能的输入。监控功能需要通过配置IOM硬件来实现。它向SMU生成全局系统事件。IOM驱动程序初始化并控制微控制器的IOM单元。驱动程序还为用户提供初始化和设置IOM内部单元的阈值的服务。它还应该提供重置IOM内核的服务。应该提供该服务来组合单个或多个本地事件,以生成单个全局系统事件。IOM驱动程序严重依赖于初始化和配置。软硬件关系如下图缩写解释LAM逻辑分析模块ECM事件组合模块FPC。

梦想技术家 1799

Go-继承

3.当结构体和匿名结构体有相同的字段或者方法时,编译器采用就近访问原则访问,如希望访问匿名结构体的字段和方法,可以通过匿名结构体名来区分。4.结构体嵌入两个(或多个)匿名结构体,如两个匿名结构体有相同的字段和方法(同时结构体本身没有同名的字段和方法),在访问时,就必须明确指定匿名结构体名字,否则编译报错。2.当多个结构体存在相同的属性(字段)和方法时,可以从这些结构体中抽象出结构体,在该结构体中定于这些相同的属性和方法。1.继承可以解决代码复用,让我们的编程更加靠近人类思维。一.继承的基本介绍和示意图。

m0_56719679的博客 953

8.26华为OD机试真题 新系统 - 仓库查询 (Java/Py/C/C++/Js/Go)

8.26华为OD机试真题 新系统 - 仓库查询 (Java/Py/C/C++/Js/Go)

算法大师! 1736

智护健康:基于 ESP32 的可穿戴式心率血氧远程监测手环设计与实现

随着健康管理理念的普及,可穿戴式健康监测设备成为刚需。本文设计了一款基于 ESP32 芯片的可穿戴式心率与血氧远程监测手环,通过集成专业生物传感器采集生理数据,借助 ESP32 的无线通信能力实现数据远程传输,搭配手机 APP 与云平台完成数据存储、分析与预警。文中详细阐述了硬件选型、模块接线、软件设计流程及核心代码实现,该手环具备低功耗、高精度、实时性强等特点,可满足日常健康监测与远程照护需求。

weixin_42300449的博客 1199

Go 也能实现 “继承”?

哈喽大家好,我是陈明勇,今天分享的内容是在 Go 里面使用组合的思想实现“继承”。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步。

cmy_top的博客 1495

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息以及一些相关问题

天赐好车的博客 2885

golang基础教程(十二)、继承

属性继承 在go中使用的是匿名属性,来实现继承的;即将父类作为子类的匿名属性 package main import "fmt" type Person struct { id int name string age int } type Student struct { Person id int score int className string } func...

irich的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

go语言基础精修(尚硅谷笔记)

适用于使用过go语言但是没从头到尾学习过go的人第二遍学习的go语言入门到精通

zhaicheng55的博客 3019

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Go语言基础学习

Go语言基础学习环境安装 环境安装 本文使用go版本 1.14.4 系统环境: Win 10 官方下载地址: https://golang.org/dl/ https://golang.google.cn/dl/ 第三方下载: Go语言中文网 https://studygolang.com/dl 安装直接下一步下一步即可 ...

weixin_43863895的博客 268

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Go语言基础

一、Go基础 标识符: ​ go语言中的标识符由字母数字和下划线(_)组成,并且只能以字母和下划线(_)开头 关键字: ​ 关键字是指编程语言中预先定义好的具有特殊含义的标识符。关键字和保留字都不建议用作变量名。 Go语言有25个关键字: 关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if

有用的话关个注,点个赞,收个藏🫶。 1919

golang基础教程(十二)、继承_go 创建子类实例为父类属性赋值

在Student对象中可以直接使用父类Person的属性,如果父类和子类中有重复字段,则优先使用子类自身的属性。方法的重写,在语法格式上有一定的要求,即方法名,参数,返回值类型都必须一样,但绑定的对象不在时父类二是子类本身。fmt.Printf(“ID:%d\n姓名:%s\n年龄:%d\n班级:%s\n分数:%d\n”,fmt.Printf(“ID:%d\n姓名:%s\n年龄:%d\n班级:%s\n分数:%d”,方法的继承和属性的继承是类似的,当一个类是另一个类的匿名属性时即可直接使用改类的方法。

2301_82242459的博客 886

Go语言基础知识点整理

fmt.Println("初始化元素:")//对切片中的map元素进行初始化mapSlice[0]["name"] = "小明"mapSlice[0]["gender"] = "男"mapSlice[0]["address"] = "中国""name":"张三",func main() {val := []string{"北京", "上海"}m["中国"] = valm["中国"] = append(m["中国"], "广州", "深圳")

qq_63730529的博客 1170

golang基础教程(十二)、继承_go 创建子类实例为父类属性赋值(1)

在Student对象中可以直接使用父类Person的属性,如果父类和子类中有重复字段,则优先使用子类自身的属性。fmt.Printf(“ID:%d\n姓名:%s\n年龄:%d\n班级:%s\n分数:%d”,方法的继承和属性的继承是类似的,当一个类是另一个类的匿名属性时即可直接使用改类的方法。在go中使用的是匿名属性,来实现继承的;即将父类作为子类的匿名属性。

2301_79099473的博客 785

golang学习笔记(十二):字段继承、字段多重继承、方法继承

【代码】golang学习笔记(十二):字段继承、字段多重继承、方法继承。

teng_liang的博客 499

Golang学习手册

安装非常简单,直接默认安装就行;最新版的不需要到windows的电脑属性中去设置GOPATH 安装成功后,在cmd下设置 // 默认GO111MODULE 是关闭的 go env -w GO111MODULE=on 新建项目的开发目录,如在d:\golang下面新建的项目文件夹,每个文件夹就属于一个项目 // d:\golang mkdir firstDemo cd firstDemo // 通过go mod 来管理 go mod init firstDemo // 会在当前下面生成go.mod 文件

book_longker的专栏 5809

Go-01语言基础语法

文章目录〇、go语言特点1.并发编程2.函数多返回值3.异常处理4.类型推导5.实现接口6.基于首字母的可访问特性7.不用的import或者变量引起编译错误8.语句结尾9.括号一、变量1.变量2.声明变量3.多变量声明二、常量1.常量2.iota3.枚举三、数据类型1.基本数据类型1.1布尔型bool1.2数值型1.2.1整数型1.2.2浮点型1.3字符串型string1.4数据类型转换2. 复合类型(派生类型)四、运算符五、流程结构六、数组array1.概念2.语法2.1声明和初始化2.2访问2.3遍历3

业精于勤,荒于嬉 594

Go语言学习笔记十二--面向接口-接口组合

接口的组合(类似Java中接口的多继承) 在GO中,接口的组合,类似于Java中接口的多继承. 接着 上一篇继续定义两个接口: //定义一个post的接口 type Poster interface { Post(url string,params map[string]string)string } //接口组合: 定义一个 session接口 type Session interfa...

cdzjava的博客 496

Go语言圣经

第一章入门

kwdecsdn的博客 2756
上一篇: Go语言基础(十一)—— 实现命令行参数对数据的简单查询小案例
下一篇: Centos 7(一)—— Centos 7 命令行版安装(图解)
The_Reader
博客等级 码龄10年 74粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值