理解Go面向对象的三大特征

  • Post author:
  • Post category:其他


面向对象三大特征:封装,继承,多态。

Go不是一门纯面向对象编程语言,它没有class(类)的概念,也就没有继承的说法。但Go也可以模拟面向对象的编程方式。

对象

Go没有class的概念,通过struct定义结构体,表征一类对象。

type person struct {
	Age  int
	Name string
}

对象是状态与行为的有机体。例如下面的java代码:

public class Person {

    int age;

    String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

不同于Java,Go的方法不需要跟类的数据绑定在一个class的定义里面,

只需要定义在同一个包内

。这一点可能初学Go的同学,会感觉很奇怪。

type person struct {
	Age  int
	Name string
}

func (p *person) GetAge() int {
	return p.Age
}

func (p *person) SetAge(age int)  {
	p.Age = age



版权声明:本文为littleschemer原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。