长沙专业网站设计,自助网站建设系统软件,app公司开发价格,seo网站排名查询文章目录 Go学习-Day6封装继承接口 Go学习-Day6
个人博客#xff1a;CSDN博客
封装
类似java的类的封装#xff0c;这里我们利用大小写和工厂模式来实现封装的功能略过
继承 相似的类具有相似的方法#xff0c;反复绑定相同的方法#xff0c;代码冗余#xff0c;所以引… 文章目录 Go学习-Day6封装继承接口 Go学习-Day6
个人博客CSDN博客
封装
类似java的类的封装这里我们利用大小写和工厂模式来实现封装的功能略过
继承 相似的类具有相似的方法反复绑定相同的方法代码冗余所以引入了继承的概念 嵌套匿名结构体来实现继承的效果 动手实践 type Node struct {Name string json:namePassword string json:password
}type Point struct {NodeX intY int
}func (a *Node) ok() {a.Name bbbb
}
func main() {var a Point Point{Node{aaa, bbb},1,2,}a.ok()fmt.Println(a)
}注意看a.ok()其实是a.Node.ok底层自动识别可以省略匿名结构体 基本数据类型可以匿名但是不能出现多个相同类型的匿名基本类型
接口 多态主要就是由接口来实现的 声明 type inter interface {a()b()
}实现接口 import fmttype inter interface {a()b()
}
type obj1 struct {
}type union struct {
}func (o obj1) a() {fmt.Println(okkk)//用node对象给接口的a()实现
}func (o obj1) b() {fmt.Println(ohhh)
}func (u union) ok(in inter) {in.a()in.b()
}func main() {x : union{}y : obj1{}x.ok(y)
} 从上面我们可以看到在声明一个接口之后我们用工厂方法法obj对应接口的所有方法给实现了然后另外整一个抽象类似的的结构体绑定一个方法运行接口这样我们就能通过接口把这两个类给链接在一起。 总结。 interface类型可以定义一组方法方法不用实现并且不能含有变量 Go语言没有implements关键字只要一个变量类型绑定了接口中所有的方法这个变量就能实现这个接口 这个变量就能导入到含有接口作为变量的函数内