显示结果是 abc、123,因为 new D() 时,通过构造函数改变 P 的值,而 static 变量在派生类、基类中共享,所以后面再调用 B.P 时,值就变了。
如果要分开,应该这样写:
这样双方的 static 就不相互影响了,不论 D 中如何改变 P,B.P 都不受影响。
static 继承吗?也就是说,假如上述代码中:B 有 P,但是 D 没有,那么可以用 D.P 吗?答案是可以的,也就是说是继承的。
如果使用 const 也是一样的。
另外,static、const 都不支持 virtual、override。
相关阅读