package main
import (
"fmt"
)
type company struct {
companyName string
companyAddr string
}
type Person struct{
name string
age int
company // 匿名字段
}
func (pp Person) Testfunc(){
fmt.Println(pp.name)
fmt.Println(pp.age)
}
func (pp *Person)increaseAge(){
pp.age += 1
}
func main(){
//step 1
tom := Person{name: "tom", age: 18}
tom.Testfunc()
fmt.Println(tom.age)
//step 2
tom.increaseAge() //想要在方法内改变实例的属性的时候,必须使用指针做为方法的接收者。
fmt.Printf("增加后的年龄是:%d \n", tom.age)
//step3 类似继承
myComm := company{companyAddr: "shanghai", companyName: "mm"}
luke := Person{name: "luke", age: 20, company: myComm}
fmt.Printf("%s 在 %s工作 \n", luke.name, luke.company.companyName) //类似继承,与下面的效果是一样的
fmt.Printf("%s 在 %s工作 \n", luke.name, luke.companyName)
//step4. 在 Go 语言中,函数名的首字母大小写非常重要,它被来实现控制对方法的访问权限。
}
go语言:结构体与继承
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《G...
- 参考:http://c.biancheng.net/view/66.html 关键点: 结构体实例化的方式A、基本...
- GO在文档中强调了根本没有继承这一概念 1.屏蔽现象 一个简单的demo 结果很明显,输出9,10 根据对作用域的...
- 一、流程控制 // mainpackage mainimport ("fmt")func main() { x ...