接口的引入

接口的引入

【1】代码入门:

package main
import (
	"fmt"
)

//接口的定义:定义规则、定义规划,定义某种能力:
type SayHello interface {
	sayHello()
}

//接口的实现:定义一个结构体:
//中国人:
type Chinese struct {
	
}

//实现接口的方法--->具体的实现:
func (peroson Chinese) sayHello()  {
	fmt.Println("你好")
}

//接口的实现:定义一个结构体:
//美国人:
type American struct {

}

//实现接口的方法--->具体的实现:
func (peroson American) sayHello()  {
	fmt.Println("hi")
}

//定义以一个函数,用来各国人打招呼,	
//这个函数的参数是一个接口类型
func greet(s SayHello) {
	s.sayHello()
}

func main()  {
	//定义一个中国人
	c:= Chinese{} //定义一个中国人
	//定义一个美国人
	a:= American{} //定义一个美国人
	greet(c) //调用函数,传入中国人
	greet(a) //调用函数,传入美国人
}

【2】总结:
(1)接口中可以定义一组方法,但不需要实现,不需要方法体。并且接口中不能包含任何变量。到某个自定义类型要使用的时候(实现
接口的时候),再根据具体情况把这些方法具体实现出来。

(2)实现接口要实现所有的方法才是实现。

(3)Golang中的接口,不需要显式的实现接口。Golang中没有implement关键字。
(Golang中实现接口是基于方法的,不是基于接口的)
例如:
A接口a,b方法
B接口a,b方法
C结构体实现了ab方法,那么C实现了A接口,也可以说实现了B接口(只要实现全部方法即可,和实际接口耦合性很低,比Java松散
得多)

(4)接口目的是为了定义规范,具体由别人来实现即可。

posted @ 2025-07-02 18:13  hutaodd  阅读(11)  评论(0)    收藏  举报