1. 程式人生 > >2.4 面向物件4:介面與實現

2.4 面向物件4:介面與實現

@介面與實現

  • 介面定義了一組共性
  • 這些共性體現為介面的抽象方法
  • 抽象方法就是隻有方法定義,沒有方法實現的方法
  • 接口裡有且只有抽象方法
  • 介面可以有多種不同的具體子類實現
  • 介面的作用是為子類實現提供統一的API

定義介面

//定義【USB裝置】介面
//介面:只包含抽象方法
type USBDevice interface {

    /*定義了三個【抽象方法】:定義而不做實現*/

    //連線電腦,返回值代表連線是否成功
    Connect() bool
    //讀取資料,讀到的資料
    ReadData() []byte
    //斷開連線,返回值代表連線是否成功
    Disconnct() bool
}

介面實現

//USB裝置的優盤實現
type Upan struct {
    //定義容量
    storage int
}

/*優盤實現USBDevice介面中定義的全部抽象方法=實現了USBDevice介面*/
func (up *Upan)Connect() bool  {
    fmt.Println("優盤連線成功")
    return true
}
func (up *Upan)ReadData() []byte  {
    fmt.Println("優盤連線成功")
    return []byte("東哥擼無碼藝術.avi")
}
func (up *Upan)Disconnct() bool
{ fmt.Println("優盤已斷開連線") return true }

用子類實現去賦值父類物件

func main() {
    //定義介面物件
    var usbDevice USBDevice

    //用具體實現類去為介面賦值
    up := Upan{8 * 1024 * 1024 * 1024}
    usbDevice = &up

    //操作usb裝置
    usbDevice.Connect()
    fmt.Println(usbDevice.ReadData())
    usbDevice.Disconnct()
}