Bercakap tentang kaedah abstrak golang

PHPz
Lepaskan: 2023-04-10 15:53:23
asal
694 orang telah melayarinya

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()
}
Salin selepas log masuk

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")
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan