golang实现接口类和多态的一种做法
package main import "fmt" type IMessage interface { Print() } type BaseMessage struct { msg string } func (message *BaseMessage) Print() { fmt.Println("baseMessage:msg", message.msg) } type SubMessage struct { BaseMessage } func (message *SubMessage) Print() { fmt.Println("subMessage:msg", message.msg) } func interface_use(i IMessage) { i.Print() } func main() { //var message IMessage //if message == nil { // fmt.Println("IMessage is nil") //} baseMessage := new(BaseMessage) baseMessage.msg = "a" interface_use(baseMessage) SubMessage := new(SubMessage) SubMessage.msg = "b" interface_use(SubMessage) }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。