某些背景: 我有两个不同的类(Client和ClientAuth),它们都扩展了相同的抽象类,NetworkingAbstract(我称之为NA)。最后一个类有三个不同的受保护静态类变量,它们具有以下类型:Socket,InputStream和OutputStream。
我在Client类中创建了一个新的ClientAuth对象。 ClientAuth对象调用一个方法 初始化NetworkingAbstract类变量,InputStream和OutputStream。然后,当方法返回时,当我访问这些变量时(在Client类中),它们具有在ClientAuth对象中归属于它们的相同值!
这实际上符合我的需要,但我不明白为什么会这样!
这些类变量(OutputStream和InputStream)是否应该在Client和ClientAuth之间独立,尽管它们都扩展了相同的类?或者是因为它们都扩展了同一个类,它们共享值
我希望我的问题足够清楚......
答案 0 :(得分:2)
这最后一个类有三个不同的受保护静态类变量,它们具有以下类型:Socket,InputStream和OutputStream。
静态变量是与类关联的变量,而不是该类的单个对象。
如果希望静态变量对每个对象都是唯一的,则无需使用静态变量。
答案 1 :(得分:0)
类的静态属性在其所有实例之间共享。 出于这个原因,这些属性都被称为类'属性。