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" }
優點:
保留基礎,同時提供覆蓋基礎() 的mogelijkheid
使用嵌入類型存取原始
// 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中文網其他相關文章!