面向對象,是軟件工程中的重要思想。咱們入手一門新的編程語言,須要先了解它的基本語法,而後就是如何面向對象編程。java
Go 是一門強類型語言,具備併發、安全等優點。git
函數是按值傳遞,這一點很重要github
如下是一個函數的簡單定義。golang
func speak(name string) string { return name; }
下面是一個結構體的示例編程
type Man struct { // 內部可見 age uint8 // 公開可見 Name string }
Go 裏面的結構體,能夠當作是其餘編程域名中的類,可是它只有屬性,沒有方法。安全
同 java 的接口同樣,都是抽象方法的集合併發
type HumanBehavior interface { Speak() string }
func (this *Man) Speak() string { return this.name }
(this *Man)
是要綁定的結構體,這裏傳入指針類型,能夠修改變量自身內容。編程語言
receiver 是 pointer or value。函數
正常都是須要設置receiver爲指針類型,這樣才符合咱們面向對象編程的習慣和用法。ui
介紹完上面的內容,下面咱們說明下Go語言中的面向對象是怎樣的
大寫開頭的屬性和方法能夠被包外部訪問,小寫則不能被訪問
繼承結構體中的屬性和方法
能夠重寫,但不能重載
不一樣的實例,執行同一個方法,會有不一樣的表現。
實現多態的條件是: