Terokai cara melaksanakan pewarisan melalui Golang

PHPz
Lepaskan: 2023-04-06 10:32:10
asal
634 orang telah melayarinya

Berbanding dengan bahasa lain, seperti C++ dan Java, bahasa Golang mungkin lebih sukar untuk dilaksanakan pewarisan, tetapi dalam pembangunan sebenar, pewarisan masih sangat berguna. Dalam artikel ini, kita akan meneroka cara melaksanakan pewarisan melalui Golang.

Pertama sekali, perlu jelas bahawa Golang tidak mengesyorkan konsep pewarisan, tetapi masih boleh dilaksanakan.

Di Golang, konsep serupa dengan pewarisan dilaksanakan melalui gubahan. Secara khusus, ia adalah untuk mentakrifkan struktur baharu dan membenamkan struktur lain di dalamnya, supaya anda boleh mendapatkan sifat dan kaedah struktur lain, serupa dengan warisan.

Di bawah ini kami menggunakan beberapa contoh mudah untuk menunjukkan cara melaksanakan pewarisan melalui gubahan.

Mula-mula tentukan kelas induk:

type Parent struct {
    Name string
}

func (p *Parent) SayHello() {
    fmt.Println("Hello, I am", p.Name)
}
Salin selepas log masuk

Kemudian tentukan subkelas:

type Child struct {
    Parent
    Age int
}

func (c *Child) SayHello() {
    fmt.Println("Hello, I am", c.Name, "and I am", c.Age, "years old.")
}
Salin selepas log masuk

Di sini, kami mentakrifkan struktur Anak dan di dalamnya struktur Induk Terbenam. Struktur Anak boleh mengakses sifat dan kaedah struktur Induk Ia boleh menggunakan kaedah SayHello() yang ditakrifkan oleh struktur Induk, tetapi ia juga boleh menggunakan kaedah SayHello() yang ditakrifkan sendiri.

Seterusnya, kami menggunakan struktur ini:

func main() {
    child := Child{
        Parent: Parent{Name: "Jerry"},
        Age:    12,
    }
    child.SayHello()
    child.Parent.SayHello()
}
Salin selepas log masuk

Seperti yang anda lihat, kami mencipta objek Kanak-kanak dan memulakan sifat Nama menggunakan Ibu Bapa. Kemudian kaedah SayHello() Kanak-kanak dipanggil. Kaedah SayHello() dalam struktur Kanak-kanak mengatasi kaedah SayHello() dalam struktur Induk, jadi "Hello, saya Jerry dan saya berumur 12 tahun akan menjadi output apabila memanggil child.Parent.SayHello(), Since kaedah SayHello() dalam struktur Induk tidak ditindih, "Hello, saya Jerry" akan dikeluarkan.

Melalui contoh di atas, dapat dilihat bahawa walaupun pewarisan tidak digalakkan di Golang, konsep yang serupa dengan pewarisan boleh dilaksanakan melalui gabungan. Sudah tentu, cara menggunakan kaedah ini masih perlu dipilih mengikut situasi tertentu.

Atas ialah kandungan terperinci Terokai cara melaksanakan pewarisan melalui 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!