golang面向对象总结

type $name struct{
  property01 int
  property02 int
  }

Golang里面的方法和接口都是基于这里type *** struct创建的类型,这里其实可以理解为:

class $name {
  public int property01;
  public int property02;
  }

类型就是类。

所以我们说是类型的某个方法,类型实现了某个接口。


    类型是属性的集合,接口是方法的集合   

函数的定义:func       $funcName ( ) ( ){}

方法的定义:func  ( )  $funcName ( ) ( ){}

Func (成员变量 类型) funname(局部变量 类型,局部变量 类型) (返回值类型) {}

成员变量是通过type来定义的。

函数的参数列表是需要传递的局部变量。

golang的方法的类型签名:
1.指明要给哪个类型添加方法;
2.指定调用此方法的变量的是值类型还是指针类型,调用此方法的变量必须按照类型签名这里来决定是用值类型还是指针类型,golang能自动转换,但你必须确保这个变量能被正确转换为相应的值或指针。例如,一个接口类型的变量就没法被转换为一个struct的指针。


继承:

当一个类型B的某个字段(匿名字段)的类型是另一个类型 A的时候,那么类型 A所拥有的全部字段都被隐式地引入了当前定义的这个类型B这样就实现了继承。B类型的变量就可以调用A的所有属性和方法。也就是说A继承了B

定义继承时,子类中一般都含有一个类型是父类的匿名字段匿名字段就是用来实现继承的

package main
import (
	"fmt"
)
type Animal struct {
	Name string
	Age  int
}
func (ani *Animal) GetAge() int {
	return ani.Age
}
type Dog struct {
	Animal //Animal匿名字段
}
func main() {
	dog := Dog{Animal{"dog", 10}}
	fmt.Println(dog.Age)
	fmt.Println(dog.GetAge())
}

方法的重写

如果一个类型B实现了作为其属性的类型A中的方法。那么这个类型B值调用方法的时候调用的是自己类型B的方法,而不是属性类型A的方法。
代码如下:

package main
import (
	"fmt"
)
type Animal struct {
	Name string
	Age  int
}
func (ani *Animal) GetAge() int {
	return ani.Age
}
type Dog struct {
	Animal //Animal匿名字段
}
func (ani Dog) GetAge() int {
	return ani.Age + 1
}
func main() {
	dog := Dog{Animal{"dog", 10}}
	fmt.Println(dog.Age)
	fmt.Println(dog.GetAge())
}

接口

接口

1)定义接口类型
定义接口,接口中可以有未实现的方法。

type Animal interface {
	GetAge() int
}

1)实现接口类型
如果某个类型实现了接口的所有方法。则这个类型实现了这个接口。

type Animal interface {
GetAge() int
}
type Dog struct {
Name string
Age  int
}


//实现GetAge()方法则实现了Animal接口 

func (ani Dog) GetAge() int {
return ani.Age
}



Golang是一种编程语言,具备强大的接口特性。在Golang中,接口是一种规定了对象必须遵循的行为规范。通过接口,我们可以定义一组方法的集合,任何实现了这些方法的类型都被视为实现了该接口。 接口的实现是指一个类型声明自己遵循了某个接口。实现一个接口的类型,需要实现接口中定义的所有方法。实现接口的类型不需要显式声明实现了该接口,只要实现了接口中定义的方法即可。这种方式称为隐式接口实现。 接口对象是指一个接口类型的变量或参数,可以指向满足该接口的任何具体类型的对象。通过接口对象,我们可以调用接口中定义的方法,而不需要关心具体对象是哪种类型。 使用接口的好处是可以将接口作为一个统一的契约,使得不同类型的对象可以通过实现相同的接口来实现类型的替换和灵活的设计。接口可以实现代码的重用,并且松耦合,提高代码的可维护性和可测试性。 在实际应用中,我们可以先定义接口,然后根据接口的行为规范来编写具体类型的实现。接口对象可以根据需要替换为不同的具体类型对象,实现了面向接口编程的思想。 总结来说,Golang中的接口实现是指类型声明自己遵循了某个接口并实现了接口中定义的方法。接口对象是指可以指向满足该接口的任何具体类型的对象。通过接口,我们可以实现代码的灵活和重用,使得不同类型的对象可以通过实现相同的接口来进行类型的替换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值