Golang 方法重写
在 Go 中,方法重写的概念是使用接口来实现的,而不是像 Java 中那样通过继承来实现。接口定义方法的契约,但不指定其实现。
在 Go 中实现方法重写:
使用接口:
示例:
// Interface for Get() method type Getter interface { Get() string } // Base type with original implementation type Base struct{} func (base *Base) Get() string { return "base" } // Custom type with overriding implementation type Sub struct { Base } func (sub *Sub) Get() string { return "Sub" }
优点:
使用组合的替代方法:
示例:
// Sub type with composition type Sub struct { Base custom string } func (sub *Sub) Get() string { // Access the original method via embedded Base if sub.custom == "" { return sub.Base.Get() } return sub.custom }
优点:
注意:
以上是Go如何在没有传统继承的情况下实现方法重写?的详细内容。更多信息请关注PHP中文网其他相关文章!