Pengganti Kaedah Golang
Dalam Go, konsep penggantian kaedah dicapai menggunakan antara muka dan bukannya melalui pewarisan seperti di Java. Antara muka mentakrifkan kontrak kaedah tanpa menyatakan pelaksanaannya.
Melaksanakan Kaedah Overriding dalam Go:
Menggunakan Antara Muka:
Contoh:
// 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" }
Kelebihan:
Pendekatan Alternatif menggunakan Komposisi:
Contoh:
// 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 }
Kelebihan:
Nota:
Atas ialah kandungan terperinci Bagaimanakah Go mencapai kaedah mengatasi tanpa warisan tradisional?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!