首页 > 代码库 > Golang(笔记) 面向对象
Golang(笔记) 面向对象
package main import ( "fmt" ) //对象定义 type Rect struct{ x,y float64 width ,height float64 } //对象方法实现 func (r *Rect) Area()float64{ return r.width*r.height } //Go语言没有构造函数的概念 //对象的创建通常交由一个全局的创建函数NewXXX来命名 标识构造函数 func NewRect(x,y,width,height float64) *Rect{ return &Rect{x,y,width,height} } //Go 也提供了继承 但是采用了组合的文法 称之为匿名组合 //匿名组合 示例 type Base struct{ Name string } func (base *Base) Foo(){ base.Name="Base Foo2" } func (base *Base)Bar(){ base.Name="Base Bar" } type Foo struct{ Base Name1 string } func (foo *Foo) Bar(){ foo.Base.Bar() } func main() { rect:=new(Rect) rect1:=&Rect{width:109,height:10} rect2:=&Rect{1,2,3,4} rect.width=19.9 rect.height=22.1 foo:=&Foo{} foo.Foo(); fmt.Println(foo.Name) fmt.Println(rect.Area()) fmt.Println(rect1.Area()) fmt.Println(rect2.Area()) }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。