go語言可通過struct宣告新的型別
新建乙個型別person
type person struct
var p1 person
p1.name = 'liming'
p1.age =18
新建乙個型別student,可以通過匿名欄位將person所有欄位隱式引入student
type student struct
s1 := student, 'hign school','new name'}
s1.age //23 可直接訪問person的字段
s1.name //new name 最外層優先訪問,過載
s1.person.name //zhangliang 通過匿名字段訪問
給函式新增接收者struct,或者說給struct新增方法
//此處傳遞是按值傳遞的,操作的是副本,若receiver為指標,則按引用傳遞,操作的是原例項物件
func (s student) isadult() boolean
return
false
} s1.isadult() //true
func (s *student) changeage(newage int) boolean
s1.changeage(23)
方法的和字段的繼承一樣,都是通過匿名字段
type hignschoolstudet
//可函式過載
func (h *hignschoolstudet) changeage(newage int) boolean
h1 := hignschoolstudet, 'hign school'},'math'}
inte***ce介面,提供通用方法的組合,提供了動態型別
type people inte***ce
var i people
i = s1
s1.changeage()
i = h1
h1.age
GO語言物件導向
當初開發go語言的時候就是因為c 的特性太過於繁雜,從而使得很多c 的開發者因為c 的特性而頭疼,go語言成功的精簡了c 的特性,使其很簡潔,很少的特性,卻可以完成很多的事情。go語言中並沒有像c j a語言中這類的class,它只含有像c語言中的結構體,用結構體和指標等特性,完成乙個類的作用,很巧...
Go語言中物件導向
go語言中沒有明確的oop object oriented programming 概念。go語言只提供了兩個關鍵型別 struct,inte ce。1 struct與c 語言中的普通struct相似,在go語言中是借助著struct結構體才實現的 2 inte ce是抽象類的型別,inte ce則...
Go語言 物件導向程式設計
go語言的語言設計非常的簡潔,因為,go語言並沒有物件導向的概念,因此go語言中沒有物件導向的一些概念,例如 封裝 繼承 多型,虛函式 建構函式,this指標等 儘管go語言中沒有封裝 繼承 多型,但同樣也可以實現相應的功能。封裝 通過方法進行實現 繼承 通過匿名字段實現 多型 通過介面實現 方法也...