面向对象三大特征:封装,继承,多态。
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 版权协议,转载请附上原文出处链接和本声明。