go語言物件導向

2021-07-11 17:49:58 字數 1124 閱讀 7412

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語言中沒有封裝 繼承 多型,但同樣也可以實現相應的功能。封裝 通過方法進行實現 繼承 通過匿名字段實現 多型 通過介面實現 方法也...