Java继承,同一个类

时间:2017-02-17 18:21:33

标签: java inheritance subclass

某些背景: 我有两个不同的类(Client和ClientAuth),它们都扩展了相同的抽象类,NetworkingAbstract(我称之为NA)。最后一个类有三个不同的受保护静态类变量,它们具有以下类型:Socket,InputStream和OutputStream。

我在Client类中创建了一个新的ClientAuth对象。 ClientAuth对象调用一个方法 初始化NetworkingAbstract类变量,InputStream和OutputStream。然后,当方法返回时,当我访问这些变量时(在Client类中),它们具有在ClientAuth对象中归属于它们的相同值!

这实际上符合我的需要,但我不明白为什么会这样!

这些类变量(OutputStream和InputStream)是否应该在Client和ClientAuth之间独立,尽管它们都扩展了相同的类?或者是因为它们都扩展了同一个类,它们共享值

我希望我的问题足够清楚......

2 个答案:

答案 0 :(得分:2)

  

这最后一个类有三个不同的受保护静态类变量,它们具有以下类型:Socket,InputStream和OutputStream。

静态变量是与类关联的变量,而不是该类的单个对象。

如果希望静态变量对每个对象都是唯一的,则无需使用静态变量。

答案 1 :(得分:0)

类的静态属性在其所有实例之间共享。 出于这个原因,这些属性都被称为类'属性。

阅读此java-static-methods-variables-static