Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Anda Memanggil Kaedah Jenis Asas dalam Jenis Terbenam dengan Kaedah Terlebih Beban dalam Go?

Bolehkah Anda Memanggil Kaedah Jenis Asas dalam Jenis Terbenam dengan Kaedah Terlebih Beban dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-15 10:39:03395semak imbas

Can You Call Base Type Methods in Embedded Types with Overloaded Methods in Go?

Kaedah Jenis Pangkalan Memanggil dalam Beban Terlebih Jenis Terbenam

Apabila menentukan jenis tersuai dalam Go, mungkin untuk membenamkan satu struct dalam yang lain, membenarkan penggunaan semula kod dan fungsi seperti warisan. Walau bagaimanapun, ini boleh menyebabkan konflik apabila melebihkan kaedah.

Dalam contoh yang diberikan, struct Manusia dan Pekerja telah melebihkan kaedah SayHi. Adakah mungkin untuk memanggil kaedah Manusia dengan mengakses jenis terbenam secara terus?

Ya, ini memang mungkin. Untuk mengakses struct terbenam jenis induk, hanya gunakan nama jenis terbenam sebagai ahli struct induk. Sebagai contoh, untuk memanggil kaedah Manusia daripada contoh Pekerja:

sam := Employee{Human{"Sam", 45, "111-888-XXXX"}, "Golang Inc"}
sam.Human.SayHi()

Ini akan mengeluarkan:

Hi, I am Sam you can call me on 111-888-XXXX

Perhatikan bahawa anda juga boleh mengakses medan jenis induk terus daripada struct terbenam . Sebagai contoh, sam.age akan mengakses medan umur struct terbenam Manusia dalam struct Pekerja.

Atas ialah kandungan terperinci Bolehkah Anda Memanggil Kaedah Jenis Asas dalam Jenis Terbenam dengan Kaedah Terlebih Beban dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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