Golang的嵌入和继承
发布时间:2020-12-16 18:38:26 所属栏目:大数据 来源:网络整理
导读:golang不支持继承,只支持嵌入和聚合(匿名字段称为嵌入,具名字段称为聚合)。golang通过嵌入,可以到达类似继承的效果,而且更为简洁。 一个例子 typeBasestruct{bint}func(base*Base)setB(iint){base.b=base.b+i}typeDerivestruct{Base//embeddint//aggre
golang不支持继承,只支持嵌入和聚合(匿名字段称为嵌入,具名字段称为聚合)。golang通过嵌入,可以到达类似继承的效果,而且更为简洁。 一个例子 typeBasestruct{ bint } func(base*Base)setB(iint){ base.b=base.b+i } typeDerivestruct{ Base//embed dint//aggregation } func(derive*Derive)setD(iint){ derive.d=derive.d+i } funcmain(){ vardDerive fmt.Println(d.b,d.d) d.setB(5) d.setD(10) fmt.Println(d.b,d.d) } 运行结果 自定义类型中嵌入一个类型后,嵌入类型中的任何方法都可以当作该自定义结构体自身的方法被调用。例如在Derive中嵌入Base,则Base的任何数据成员和方法都可以被当作Derive自身的数据成员和方法调用。从实际作用上看,golang中的嵌入类似与C++中的继承。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |