Rumah >pembangunan bahagian belakang >Golang >Terokai cara melaksanakan pewarisan melalui Golang

Terokai cara melaksanakan pewarisan melalui Golang

PHPz
PHPzasal
2023-04-06 09:12:39674semak imbas

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)
}

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.")
}

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()
}

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!

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