//定义一个类也就是结构体,方法不写在类里面而是写在外面type Student struct{
name string
age int
score float32}//方法绑定func(this *Student)run(name string){//this可以是任意值,因为受Java影响所以定义为this
this.name = name
}
meng := Student{
name:"meng",
age :30,
score :120,}
meng.run(meng.name)
继承
//父类type Man struct{
name string
age int
score float32}//子类type Teacher struct{
subject string//如果是继承直接写父类类型不写名字
Man
}//实例化一个Teacher
t1 := Teacher{}
t1.subject ="语文"
t1.name ="小明"
多态
//go语言多态不需要继承父类只需要实现相应的接口//定义一个接口type IAttack interface{Attack()}//定义一个类type ManLevel struct{
name string
level int}//实现接口方法名名必须和接口里的方法一样func(a *ManLevel)Attack(){
fmt.Println(a.name,a.level)}funcmain(){var player IAttack//定义一个接口也变量
lowLevel := ManLevel{
name:"m",
level:0,}
lowLevel.Attack()//对player赋值
player =&lowLevel
player.Attack()}