首頁  >  文章  >  後端開發  >  golang 是物件導向的麼

golang 是物件導向的麼

(*-*)浩
(*-*)浩原創
2019-12-31 10:27:443064瀏覽

golang 是物件導向的麼

go語言中,雖然沒有明確提出物件導向的概念,但是基於現有的語法設計,我們也可以寫出物件導向的程式碼。 go語言中的物件導向是藉助struct結構體實現的。                                               (建議學習:go#時)

Golang 定義為物件導向的兩個關鍵字。

與C 採用public/protected/private指示成員和方法的可見性不同,Golang採用大小寫標識可見性,即大寫字母開頭的成員/方法對外可見,小寫開頭的則屬於類別的私有成員,外部不可以直接存取。

此外,Golang與C 在類別類型的定義上還有一個重要區別,那就是Golang在struct內只需要聲明類別的成員變量,而不需要在類別定義體內聲明或定義所有的方法,方法定義都在struct之外完成。

Golang透過struct定義類別的屬性,透過在func定義時傳入類別物件的方式定義類別的方法,其中屬性和方法的公有/私有屬性是透過首字母的大小寫決定的。

type Student struct {
	name  string
	age   int
	major string
}

Golang沒有完整實作繼承,而是透過組合的方式實作。組合類別(子類別)可以直接呼叫被組合類別(基底類別)的公有方法,存取基底類別的公有屬性,子類別也可以定義自己的屬性,以及實作自己特有的方法。

Golang的設計哲學之一就是簡潔,透過大小寫區分成員/方法的公有/私有屬性,透過組合的方式實現繼承,都是簡潔哲學的體現。

Golang的interface類型定義的也是一個抽象的基類,它是一組方法的集合,任何完整實作這些方法的類型都被稱為該介面的實現。由於抽象與多態是相輔相成的,或者說抽象的目的就是為了實現多態。

以上是golang 是物件導向的麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn