我正在尝试理解继承的概念(用 C++ 进行测试)。这里引用自:http ://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming )
“在面向对象编程 (OOP) 中,继承是一种重用现有对象的代码或从现有对象建立子类型或两者兼而有之的方法,具体取决于编程语言支持”
然后我测试了这段代码:
class Person
{
public:
int ii;
Person():ii(0){}
};
class Student : public Person
{
};
class Student1 : public Person
{
};
然后,
Person p;
Student s;
Student1 s1;
s.ii = 222;
p.ii = 333;
cout << s.ii << endl; // prints 222
cout << s1.ii << endl; // prints 0
cout << p.ii << endl; // prints 333
如结果所示,每个子类都有自己的 ii 变量版本,每个子类都从基类获取复制值。因此,当我们更改一个时,它不会影响其他的。
这不是我一开始想到的。我认为从基类继承时,所有子类都会继承相同的属性实例。每个子类不需要保留自己的版本。这可以利用重复使用和节省空间的优势。
我是不是误会了什么?如果我是正确的,那么其他 OOP 语言也是如此吗?(我知道我可以使用静态变量来达到我的想法,但这不是我在说的)