Go基礎學習 物件導向

2021-06-18 14:25:58 字數 859 閱讀 7512

作為一門物件導向的語言,必然少不了介面,go的介面叫做非侵入式,雖然不存在繼承的語法,但是有繼承的概念。

如下,乙個connector介面,包含乙個connect()方法,乙個usb介面,包含了connector介面和乙個name()方法,然後兩個類phoneconnector和tvconnector分別實現了usb介面,乙個全域性disconnect()方法,介面乙個connector引數。

package main

import (

"fmt"

)type connector inte***ce

type phoneconnector struct

type tvconnector struct

type usb inte***ce

func (pc phoneconnector) connect()

func (pc phoneconnector) name() string

func (tv tvconnector) connect()

func (tv tvconnector) name() string

func disconnect(usb connector)

}func main()

tv := tvconnector

pc.connect()

tv.connect()

disconnect(pc)

disconnect(tv)

}

對於以上程式,有個疑問,假如把phoneconnector和tvconnector的兩個實現函式的接收器修改為指標型別,disconnect函式該如何寫呢?試了好久無果。。。

go 物件導向

在前面博文我們有記錄函式與struct型別的使用,那你是否有想過把函式當做struct字段一樣來處理呢?接下來,將記錄一下函式的另一種形態,帶有接收者的函式,我們稱之為method,即方法 在物件導向程式設計中,乙個物件其實也就是乙個簡單的值或者乙個變數,在這個物件中會包含一些函式,這種帶有接收者的...

go物件導向

把一類事物的共有的屬性 字段 和行為 方法 提取出來,形成乙個物理模型 結構體 這種研究問題的方法稱為抽象 封裝 encapsulation 就是把抽象出的字段和對字段的操作封裝在一起,資料被保護在內部,程式的其它包只有通過被授權的操作 方法 才能對欄位進行操作 封裝的好處 1 隱藏實現細節 2 可...

Go基礎之物件導向(GOPATH篇)

export path gopath bin path usr local go bin export goroot usr local go export gopath home go goroot 環境變數 存放go語言系統庫檔案的目錄,如 fmt io 等,就是go的sdk gopath 環境...