中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

go語言怎么實現繼承

小億
107
2023-11-27 12:19:28
欄目: 編程語言

Go語言中沒有面向對象編程中的繼承概念,但可以通過結構體嵌套和組合的方式來實現類似的效果。

可以通過在一個結構體中嵌入另一個結構體來實現繼承的效果。子結構體可以訪問父結構體中的字段和方法。

下面是一個簡單的例子:

package main

import "fmt"

// 父結構體
type Parent struct {
	name string
	age  int
}

// 父結構體方法
func (p *Parent) sayHello() {
	fmt.Println("Hello, I'm", p.name)
}

// 子結構體
type Child struct {
	Parent  // 嵌入父結構體
	school string
}

// 子結構體方法
func (c *Child) goToSchool() {
	fmt.Println(c.name, "is going to", c.school)
}

func main() {
	// 創建子結構體對象
	child := Child{
		Parent: Parent{
			name: "Tom",
			age:  10,
		},
		school: "ABC School",
	}

	// 訪問父結構體字段和方法
	fmt.Println(child.name)     // 輸出:Tom
	fmt.Println(child.age)      // 輸出:10
	child.sayHello()            // 輸出:Hello, I'm Tom

	// 訪問子結構體字段和方法
	fmt.Println(child.school)   // 輸出:ABC School
	child.goToSchool()          // 輸出:Tom is going to ABC School
}

在上面的例子中,我們定義了一個父結構體Parent,包含了一個字段name和一個方法sayHello。然后定義了一個子結構體Child,通過嵌入父結構體來實現繼承。子結構體還定義了一個自己的字段school和方法goToSchool

main函數中,我們創建了一個子結構體對象child,然后可以通過對象訪問父結構體的字段和方法,也可以訪問子結構體自己的字段和方法。

0
高阳县| 夏津县| 墨脱县| 泰兴市| 江源县| 山西省| 额尔古纳市| 平南县| 璧山县| 河西区| 微山县| 萍乡市| 神池县| 永仁县| 信丰县| 湘阴县| 广西| 资溪县| 府谷县| 苗栗县| 东光县| 保康县| 梓潼县| 淳化县| 柏乡县| 尼木县| 大兴区| 色达县| 林芝县| 新野县| 福安市| 仪征市| 白山市| 渝北区| 故城县| 南开区| 新津县| 呼和浩特市| 黔西县| 珲春市| 凯里市|