Go語言的介面和實現類初探(二)

2021-06-28 15:07:05 字數 846 閱讀 2741

擴充套件

如果實現多個介面,也是很簡單的,同理把他的方法實現了就行。

背景:有乙個動物的介面,他有吃和跑的動作,突然來乙隻鳥的動物,呀,它還會飛。

如果我們修改介面動物加上飛的動作,這樣會讓狗也要飛了。所以,我們把介面的方法都單獨另出來。

package main

import (

"fmt"

)//飛的介面

type ifly inte***ce

//吃的介面

type ieat inte***ce

//跑的介面

type irun inte***ce

//狗的實現類

type dog struct

func (dog *dog) eat()

func (dog *dog) run()

//鳥的實現類

type bird struct

func (bird *bird) fly()

func (bird *bird) eat()

func main()

eat.eat()

eat = &bird

eat.eat()

var run irun = &dog

run.run()

var fly ifly = &bird

fly.fly()

}

執行結果

總結:golang實現介面只要實現類實現該介面裡的全部方法,我們稱該實現類實現該介面。

go語言 抽象介面和介面實現之間的賦值

type toy inte ce type toyfactory inte ce type catfactory struct type cat struct func this cat speak func this catfactory create toy type dog struct fu...

Go語言的介面

介面是一種抽象型別,是對其他型別行為的概括與抽象,從語法角度來看,介面是一組方法定義的集合。很多物件導向的語言都有介面這個概念,但go語言介面的獨特之處在於它是隱式實現。換句話說,對於乙個具體的型別,無須宣告它實現了哪些介面,只要提供介面所必需的方法即可。這種設計讓程式設計人員無須改變已有型別的實現...

初探物件導向 抽象類和介面

接觸物件導向也有一段時間了,可是理解一直特別地淺。要用的時候才知道無從下手。最近又將物件導向相關的書籍看了看,一些概念比如 封裝 繼承和多型有了一些認識,但是還有一些就讓我焦頭爛額了,比如 委託。這裡我整理了一些關於抽象類和介面的知識,其中以乙個大家都非常熟悉的例子進行講解 動物 現實世界中貓和狗都...