欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > Go语言 类继承

Go语言 类继承

2024/10/24 8:19:39 来源:https://blog.csdn.net/json_ligege/article/details/141174988  浏览:    关键词:Go语言 类继承

 本篇文章主要内容为Go语言类继承介绍及类继承示例。

目录

继承

定义父类

类嵌套

定义学生类

赋值及调用

继承

定义老师类

赋值及调用

同名字段

访问权限

总结


继承

Go 语言中没有继承的概念,所以结构、接口之间也没有父子关系。

Go 语言提倡的是组合利用组合达到代码复用的目的。

定义父类

首先定义一个人类,并设定名称、年龄、性别三个属性,绑定一个吃东西的类方法。

示例如下:

package mainimport "fmt"type Human struct {// 成员属性name   stringage    intgender string
}// 在类外绑定方法
func (this *Human) Eat() {fmt.Println("this is :", this.name, " eating")
}

 

类嵌套

类的嵌套而非类的继承。

定义学生类

定义一个学生类,包含Human类型的变量,此时是类的嵌套。

示例如下:

type Student1 struct {hum    Human // 包含Human类型的变量,此时是类的嵌套score  float64school string
}

 

赋值及调用

对学生类赋值及打印学生类的属性。

示例如下:

func main() {s1 := Student1{hum: Human{name:   "hong",age:    12,gender: "女生",},school: "清华附小",}fmt.Println("s1.name:", s1.hum.name)fmt.Println("s1.school:", s1.school)
}

运行结果:

s1.name: hong
s1.school: 清华附小

 

继承

定义老师类

定义一个老师,去继承Human类。

示例如下:

type Teacher struct {Human // 直接写human类型,没有字段名字subject string //学科
}

 

赋值及调用

定义一个老师,并赋值老师的属性。

示例如下:

func main() {t1 := Teacher{}t1.subject = "英语"// 下面的这些字段都是继承自Humant1.name = "朱老师"t1.age = 40t1.gender = "女"fmt.Println("t1:", t1)// 调用继承的方法t1.Eat()
}

 

同名字段

继承的时候,虽然我们没有定义字段名字,但是自动会创建一个默认同名字段

这是为了在子类中依然可以操作父类,因为:子类父类可能出现同名字段。

示例如下:

fmt.Println("t1.Human.name:", t1.Human.name)

 

访问权限

在go语言中,权限都是通过首字母大小写来控制

1.import --> 如果包名不同,那么只有大写字母开头的才是public的

2.对于类里面的成员、方法 --> 只有大写开头的才能在其他包中使用

总结

本篇文章主要内容为Go语言类继承介绍及类继承示例。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com