0

所以我正在使用一个包含一些 Web 服务的单例类。对服务的引用存储为私有静态只读成员。我想要一个非常相似的类,它用相同的接口包装不同的 Web 服务。如果我从第一个类继承并用新成员覆盖私有静态只读成员,一切都会像我想的那样顺利吗?所有继承的函数(一些公共的、一些私有的、一些静态的)都会使用新的引用吗?

我问是因为我之前遇到过一些关于静态成员继承的怪癖。

4

1 回答 1

5

不,这行不通。静态成员附加到类型,而不是实例,并且不能被覆盖。如果您更改派生类中的静态值(必须至少是protected,而不是private),这将更改基类和派生类的所有实例的值。

这里要注意的重要一点是静态字段附加到基本类型。当您从该基类派生时,您不会获得静态字段的新副本,派生类使用与基类相同的静态实例。

于 2012-08-28T17:43:58.210 回答