1. 程式人生 > >Go/面向物件特性/介面-多型

Go/面向物件特性/介面-多型

# 介面 interface

介面只有方法宣告,沒有實現,沒有資料欄位

介面可以匿名嵌入到其它介面或結構體中

介面不能繫結方法實現

package main

import "fmt"

//介面
type Persion interface {
	sayHey()		//方法宣告
}

type Stu struct{
	//Persion
	name string
}

//實現介面
func (s *Stu) sayHey(){
	fmt.Println("sayHey in Stu")
}

func main() {
	var s Stu
	s.sayHey()

	var i Persion		 //介面
	i = &s              //&s實現了該介面
	i.sayHey()

	//空介面
	//所有的資料型別(基本資料型別、複合資料型別)都實現了空介面
	//所以可以給空介面賦任意值
	var iii interface{} = 1
	iii = "aaa"
	fmt.Println(iii)
}