go 關於接口的實現

package main

import "fmt"

type I interface {
	Io() error
}

type A struct {
}

func (r *A) Io() error {
	fmt.Println("a i")
	return nil
}

type B struct {
	*A //使用匿名方式,纔會隱式實現A所繼承的接口
}

//自定義實現接口,類似於重寫
func (r *B) Io() error {
	fmt.Println("b i")
	return nil
}

func p(i I) {
	_ = i.Io()
}

func main() {
	var a A
	j := &a
	var b B
	i := &b
	//p(b)//不可行,應使用指針型
	p(j) //a i
	p(i) //b i
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章