派生类与基类的 static 共享

显示结果是 abc、123,因为 new D() 时,通过构造函数改变 P 的值,而 static 变量在派生类、基类中共享,所以后面再调用 B.P 时,值就变了。

如果要分开,应该这样写:

这样双方的 static 就不相互影响了,不论 D 中如何改变 P,B.P 都不受影响。

static 继承吗?也就是说,假如上述代码中:B 有 P,但是 D 没有,那么可以用 D.P 吗?答案是可以的,也就是说是继承的。

如果使用 const 也是一样的。

另外,static、const 都不支持 virtual、override。

相关阅读

  • new、virtual、override、abstract 等-隐藏与覆盖实际操作

你可能感兴趣的