【golang】 關於對象,接口講解

GO 對於 「對象」的解釋函數

一:在Go語言中,你能夠給任意類型 ,添加相應的方法,code

type Integer int

func (a Integer) Less(b Integer) bool {

return a < b

}

在這個例子中,咱們定義了一個新類型Integer,它和int沒有本質不一樣,只是它爲內置的 int類型增長了個新方法Less()。對象

這樣實現了Integer後,就能夠讓整型像一個普通的類同樣使用:繼承

func main() {  
var a Integer = 1

if a.Less(2) {

 fmt.Println(a, "Less 2")

 }
}

GO 對於 「接口」繼承的解釋接口

二:在Go語言中,只須要實現了接口要求的全部函數,咱們就說實現了該接口。it

type IFile interface {  
Read(buf [] byte) (n int, err error)  
Write(buf [] byte) (n int, err error)  
Seek(off int64, whence int) (pos int64, err error)
Close() error
}

type IReader interface {  
Read(buf []byte) (n int, err error)

}

type IWriter interface{  
Write(buf []byte) (n int, err error)

}

type ICloser interface {

Close() error

}


type File struct {

// ...

}

func (f File) Read(buf []byte) (n int, err error)  
func (f File) Write(buf []byte) (n int, err error)  
func (f File) Seek(off int64, whence int) (pos int64, err error)
func (f File) Close() error

  

儘管File類並無從這些接口繼承,甚至能夠不知道這些接口的存在,可是File類實現了  這些接口,能夠進行賦值:

var file1 IFile = new(File)

var file2 IReader = new(File)

var file3 IWriter = new(File)

var file4 ICloser = new(File)

接口賦值file

1.將對象實例賦值給接口;方法

2.將一個接口賦值給另外一個接口。error

相關文章
相關標籤/搜索