接口使用

接口基本使用

package main

import "fmt"

func main() {
    var i Humaner

    student := student{"学生"}
    i = student
    i.sayHi() //{name:学生}   sayHi

    //i = new(teacher)
    teacher := teacher{"教师"}
    i = teacher
    i.sayHi()

    str := Str("string")
    i = str
    i.sayHi()

}

//定义接口
type Humaner interface {
    sayHi()
}
type student struct {
    name string
}
type teacher struct {
    name string
}
type Str string

func (student student) sayHi() {
    fmt.Printf("%+v   sayHi   \n", student)
}
func (teacher teacher) sayHi() {
    fmt.Printf("%+v   sayHi   \n", teacher)
}
func (str Str) sayHi() {
    fmt.Printf("%+v   sayHi   \n", str)
}

 接口继承

package main

import "fmt"

func main() {
    var i Personer
    i = person{"person"}
    i.sayHi()
}

//定义接口
type Humaner interface {
    sayHi()
}

//Personer接口继承Humaner接口
type Personer interface {
    Humaner
}
type person struct {
    typeName string
}

func (person person) sayHi() {
    fmt.Printf("%+v   sayHi", person)
}

 空接口

package main

import "fmt"

func main() {
    var i interface{} //定义空接口,空接口可以接受任意类型
    i = "字符串"
    fmt.Println(i) //字符串
    i = 20
    fmt.Println(i) //20
}

 

posted @ 2018-11-13 15:40  Atm_fan  阅读(138)  评论(0)    收藏  举报

12131313131