前言
封装、继承和多态是面向对象编程中最基本的三个概念,C++ 是一种真正的面向对象编程语言,它支持类和对象、继承和多态等常见的面向对象特性。C++ 的面向对象模型非常强大和灵活,允许您创建复杂的系统,并提供高度的可重用性和可扩展性。Go 语言支持面向对象编程,但与传统的面向对象语言不同,Go 语言采用了更加简单和轻量级的面向对象模式。在 Go 语言中,您可以使用结构体(struct)和方法(method)来实现面向对象编程。
下面就从封装继承以及多态这三个面向对象的基本概念分别说明他们的异同点。
封装
C++中的封装通过类定义实现,可以使用public
, private
, protected
关键字控制成员的访问权限。C++类的一个例子:
class Person {
private:
int age;
string name;
public:
void setAge(int a) {
age = a;
}
int getAge() {
return age;
}
void setName(string n) {
name = n;
}
string getName() {
return name;
}
};
Go语言中的封装通过结构体实现,通过将属性设置为小写字母开头的变量名来限制外部的访问权限。下面是一个Go结构体的例子:
type Person struct {
age int
name string
}
func (p *Person) SetAge(a int) {
p.age = a
}
func (p *Person) GetAge() int {
return