接口, 结构,方法三者之间的关系

接口, 结构,方法三者之间的关系

package main

import "fmt"

type Tools interface {
    Car(name string) string
    Fly(name string) string
}
type tools struct {
}
//第一种写法 推荐
func NewTools() Tools {
    return &tools{} //加了&,写方法时必须是指针
}
//第二种写法
func NewTools2() *tools {
    return &tools{}
}

func (t *tools) Car(name string) string  {
    return "This is Car by " + name
}
func (t *tools) Fly(name string) string {
    return "This is Fly by " + name
}

func main() {
    var svc Tools //定义一个接口
    svc = NewTools() //将实现接口的方法赋值
    s1 := svc.Car("aodi")
    s2 := svc.Fly("boyin")
    fmt.Println(s1)
    fmt.Println(s2)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,795评论 0 14
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,038评论 2 89
  • 在什么时候表现风度,尤其要在遇到逆境,遇到自己接受不了的人,遇到犯错误的时候,父亲如何表现风度,这是带给孩子内心的...
    开一片春天在心里阅读 215评论 0 0
  • (二)娶亲生子 按照既定的安排,复员后,老五和刘彩霞结婚了。因为老五是公家人的缘故,村里特意照...
    仲李健萧山书屋阅读 1,212评论 0 4
  • 为了理想拼搏在这个城市,或许没有真正的想得到什么,只是为了证明给自己看,你看!我可以的! 这段时间忙的一塌糊涂,但...
    大鱼_9247阅读 234评论 0 2