Dalam bidang pengaturcaraan berorientasikan objek, kaedah abstrak adalah konsep yang penting. Sebaliknya ialah Kaedah Konkrit biasanya digunakan untuk menentukan antara muka, dan pelaksanaan khusus dilaksanakan oleh kelas yang melaksanakan antara muka ini.
Dalam bahasa Go, tiada konsep kelas, tetapi ia menyokong antara muka, yang melaluinya konsep kaedah abstrak dilaksanakan.
Pertama sekali, antara muka dalam bahasa Go terdiri daripada satu set kaedah (Kaedah). Kaedah ini boleh dilaksanakan oleh mana-mana jenis. Sebagai contoh, kami mentakrifkan antara muka:
type Animal interface { Move() }
Antara muka ini mentakrifkan kaedah Alih. Mana-mana jenis yang melaksanakan antara muka ini mesti melaksanakan kaedah Move. Kita boleh mencipta jenis yang dipanggil Cat:
type Cat struct {} func (c *Cat) Move() { fmt.Println("Cat is moving") }
Jenis Kucing melaksanakan kaedah Move dalam antara muka Haiwan.
Seterusnya mari kita lihat contoh dalam contoh ini, kita mentakrifkan antara muka Kereta:
type Car interface { Engine() bool }
Antara muka ini mentakrifkan kaedah Enjin yang mengembalikan nilai Boolean. Mana-mana jenis yang melaksanakan antara muka ini mesti melaksanakan kaedah Enjin.
Mari cipta jenis yang dipanggil Benz:
type Benz struct {} func (b *Benz) Engine() bool { return true }
Jenis Benz melaksanakan kaedah Enjin dalam antara muka Kereta dan mengembalikan nilai sebenar.
Ringkasnya, kaedah abstrak biasanya merupakan konvensyen yang mentakrifkan spesifikasi yang menentukan kaedah mana yang mesti dilaksanakan oleh kelas yang melaksanakan spesifikasi. Dalam bahasa Go, kita boleh mentakrifkan kaedah abstrak melalui antara muka dan mencipta jenis yang melaksanakan antara muka untuk melaksanakan fungsi kaedah abstrak.
Sudah tentu, dalam bahasa Go, kita juga boleh menggunakan kaedah lain untuk melaksanakan fungsi kaedah abstrak. Di sini kami hanya menggunakan kaedah antara muka Untuk lebih banyak kaedah pelaksanaan, sila rujuk maklumat yang berkaitan.
Atas ialah kandungan terperinci Bercakap tentang kaedah abstrak golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!