name string
}
go语言中没有继承,但可以通过“匿名组合”实现继承
结构体继承,方法继承,方法重写
//父类
type Person struct {
name string
age int
}
type Student struct {
Person //匿名继承
//*Person //指针作为匿名字段
//p Person//别名继承
height string
//子类和父类字段重名
name string
}
type Teacher struct {
Person //匿名继承
//*Person //指针作为匿名字段
//p Person//别名继承
sex string
}
//基本类型不能作为对象直接使用,为基本类型绑定方法,需要起别名才可以
type newint int
func (i newint) add(a newint) newint {
return a + 1
}
//方法继承和重写(给结构体绑定方法)
//*代表是否可以读写(修改),*代表接收者为指针
func (p *Person) eat(){
fmt.Println(“人类吃饭”)
}
func (p *Person) drink(){
fmt.Println(“人类喝水”)
}
func (p *Student) eat(){
fmt.Println(“学生吃饭”)
}
func main() {
tea :=Teacher{Person{“人类”,1},“男”}
//子类和父类字段重名,默认给子类赋值,给父类赋值需要加父类名称调用
tea.name = “张飞”
tea.Person.name = “大飞”
//子类可以直接使用父类字段
fmt.Println(tea.name)
fmt.Println(tea.age)
fmt.Println(tea.sex)
stu :=Student{Person{“人类”,1},“188”}
//方法继承,子类可以直接调用父类方法
stu.drink()
//方法重写,默认执行子类方法
stu.eat()
stu.Person1.eat()
//如果是指针作为匿名字段
var stu Student
//需要new一个空间
stu.Person = new(Person)
//正常模式
(*stu.Person).name = “典韦”
//简易模式
stu.name = “诸葛亮”
fmt.Println(stu.name)
//使用别名调用方法
var newi newint
result :=newi.add(2)
fmt.Println(“为int定义别名”,result)
}
接口
接口 ,给结构体定义接口,那么必须定义接口里面的所有方法才可以
//定义接口
type IHuman interface {
say()
eat()
}
type Stus struct {
name string
age int
}
type Teas struct {
name string
age int
sex string
}
//结构体实现接口方法1
func (stus *Stus) eat() {
fmt.Println(stus.name, “正在吃饭”)
}
//结构体实现接口方法2
func (stus *Stus) say() {
fmt.Println(stus.name, “正在说话”)
}
func (tea *Teas) eat() {
fmt.Println(tea.name, “正在吃饭”)
}
func (tea *Teas) say() {
fmt.Println(tea.name, “正在说话”)
}
//将接口作为函数参数实现多态
func dotest(hu IHuman) {
hu.say()
hu.eat()
}
//测试
func main() {
//多态调用
stus := Stus{“诸葛”, 1}
dotest(&stus)
tea := Teas{“老师”, 1,“男”}
dotest(&tea)
var h IHuman
h = &stus
h.say()
h.eat()
}
接口继承和转换
//接口继承和转换
type Humans interface {//子集
eat()
}
type Persons interface {//超集
Humans //匿名继承接口
say()
}
type Students struct {
name string
age int
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
eYF-1712969988742)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-4uFgeDCE-1712969988743)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!