package main
import"fmt"// C++ 创建类的方式/*
class Person{
public:
string name
int age
public:
Sayhi(){
...
}
}
*/// Golang创建一个person类,绑定Sayhi()方法type Person struct{
Name string
Age int}// 在类外面绑定方法// 通过在方法前面指定数据类型类绑定方法到指定类,有点类似于C#的扩展函数// 下面这个Person数据类型,是Person对象的一个拷贝,在该函数下修改person里面的成员值,原始数据类型值不会改变// 如果想在绑定的函数中可以修改原始数据类型的值,可以通过指针func (person *Person) Sayhi(){}的方式来定义func(person Person)Sayhi(){
// 类的方法,使用自己的成员Name
fmt.Println("hi, my name is ",person.Name)}// 通过指针的方式将函数绑定在指定类中,在该函数下可以修改原始数据类型的成员值func(this *Person)SayHello(){
this.Name ="china"
fmt.Println("hi, my name is ",this.Name)}funcmain(){
person := Person{
Name:"simple",
Age:25,}
fmt.Println(person)
person.Sayhi()
fmt.Println(person)
person.SayHello()}
文章目录类的封装及方法绑定类的继承类的访问权限(访问修饰符)多态(通过interface实现)接口的使用多态类的封装及方法绑定Golang支持类的操作,但是没有class关键字,使用struct类模拟类在struct中定义函数需要在外部绑定,通过在方法前面指定数据类型类绑定方法到指定类,有点类似于C#的扩展函数package mainimport "fmt"// C++ 创建类的方式/* class Person{ public: string name int ag