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 ...