go語言 什麼是接口

接口

1 什麼是接口

把所有的具有共性的方法定義在一起,任何其他類型只要實現了這些方法就是實現了這個接口

接口定義了一組方法,如果某個對象實現了某個接口的所有方法,則此對象就實現了該接口

2 接口的定義

/* 定義接口 */
type interface_name interface {
   method_name1 [return_type]
   method_name2 [return_type]
   method_name3 [return_type]
   ...
   method_namen [return_type]
}

/* 定義結構體 */
type struct_name struct {
   /* variables */
}

/* 實現接口方法 */
func (struct_name_variable struct_name) method_name1() [return_type] {
   /* 方法實現 */
}
...
func (struct_name_variable struct_name) method_namen() [return_type] {
   /* 方法實現*/
}

3 接口代碼實現

package main

import "fmt"

// Animal 接口實現  接口實現了 move和eat兩個方法
type Animal interface {
	move()
	eat(food string)
}

// Cat 定義貓的結構體
type Cat struct {
	name string
	feet uint8
}

func (c Cat) move() {
	fmt.Printf("%s跑了。。。\n", c.name)
}

func (c Cat) eat(food string) {
	fmt.Printf("%s喫%s\n", c.name, food)
}

// Chicken 定義雞的結構體
type Chicken struct {
	name string
	feet uint8
}

func (c Chicken) move() {
	fmt.Printf("%s跑了。。。\n", c.name)
}

func (c Chicken) eat(food string) {
	fmt.Printf("%s喫%s\n", c.name, food)
}

func main() {
	var am Animal
	am = Cat{name: "小貓", feet: 4}
	am.move()
	am.eat("老鼠")

	am = Chicken{
		name: "小雞",
		feet: 2,
	}
	am.move()
	am.eat("小蟲子")
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章