有過 JAVA 語言學習經歷的朋友都知道,面向物件主要包括了三個基本特征:封裝、繼承和多型,封裝,就是指運行的資料和函式系結在一起,JAVA 中主要是通過 super 指標來完成的;繼承,就是指 class 之間可以相互繼承屬性和函式;多型,主要就是用統一的介面來處理通用的邏輯,每個 class 只需要按照介面實作自己的回呼函式就可以了,
作為集大成者的 Go 語言,自然不會在面向物件上面無所作為,相比較 java、C#、C++ 等面向物件語言而言,它的面向物件更簡單,也更容易理解,下面,我們不妨用三個簡單的例子來說明一下 go 語言下的面向物件是什么樣的,
封裝特性
package main import "fmt" type data struct { val int } func (p_data *data) set(num int) { p_data.val = num } func (p_data *data) show() { fmt.Println(p_data.val) } func main() { p_data := &data{4} p_data.set(5) p_data.show() }
繼承特性
package main import "fmt" type parent struct { val int } type child struct { parent num int } func main() { var c child c = child{parent{1}, 2} fmt.Println(c.num) fmt.Println(c.val) }
多型特性
package main import "fmt" type act interface { write() } type xiaoming struct { } type xiaofang struct { } func (xm *xiaoming) write() { fmt.Println("xiaoming write") } func (xf *xiaofang) write() { fmt.Println("xiaofang write") } func main() { var w act; xm := xiaoming{} xf := xiaofang{} w = &xm w.write() w = &xf w.write() }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/71578.html
標籤:Go
上一篇:Go微服務全鏈路跟蹤詳解
下一篇:golang基礎語法
