Go 33 Go 物件導向程式設計 多型及體現

2022-07-02 03:33:12 字數 408 閱讀 2051

基本介紹

變數(例項)具有多種形態。物件導向的第三大特徵,在go語言中,多型特徵是通過介面實現的。可以按照統一的介面來呼叫不同的實現。這時介面變數就呈現不同的形態。

介面體現多型兩種形式

1.多型引數

在前面的usb介面案例,usb  usb, 即可以接收手機變數,又可以接收相機變數,就體現了usb介面 多型

2.多型陣列

給usb陣列中,存放 phone結構體 和 cammera 結構體變數,phone還有乙個特有的方法call(),請遍歷usb陣列,如果是phone變數,除了呼叫usb介面宣告的方法外,還需要呼叫phone特有方法 call(後面的型別斷言會具體實現及原理)。

陣列裡只能放一種資料型別,但是因為多型的特性,所以可以放置 phone和cammera兩種不同的結構體(多型陣列);

Go 物件導向 五) 多型

介面 只有方法的定義,沒有實現 全部是抽象方法 實現介面 結構體實現介面的全部抽象方法,稱為結構體實現了介面 多型 乙個父類 介面有不同的子類實現,本例中 勞動者介面 的具體實現有 程式設計師 產品經理 老闆 共性 程式設計師 產品經理 老闆 都會勞動和休息 個性 程式設計師 產品經理 老闆 的勞動...

Go 物件導向程式設計

值語義與引用語義的區別在於賦值。值型別不會改變變數值,引用型別會改變變數值。go 語言中大多數型別都是基於值語義,包括 基本型別 如byte int bool float32 float64和string 復合型別 如陣列 array 結構體 struct 和指標 pointer 等。go語言中的陣...

Go的物件導向程式設計

func p point distance q point float64 p point q point fmt.println distance p,q 5 function call fmt.println p.distance q 5 method call 裡那個附加的引數p,叫做方法的接...