Un contexte: J'ai deux classes différentes (Client et ClientAuth) qui étendent la même classe abstraite, NetworkingAbstract (je l'appelle NA). Cette dernière classe a trois variables de classes statiques protégées différentes avec les types suivants: un Socket, un InputStream et un OutputStream.Java Inheritance, deux sous-classes de la même classe
Je crée un nouvel objet ClientAuth dans la classe Client. L'objet ClientAuth appelle une méthode qui initialise les variables de classe NetworkingAbstract, InputStream et OutputStream. Puis, quand la méthode revient, quand j'accède à ces variables (dans la classe Client), elles ont les mêmes valeurs qui leur ont été attribuées dans l'objet ClientAuth!
Cela correspond vraiment à mes besoins, mais je ne comprends pas pourquoi cela arrive!
Les variables de classe (OutputStream et InputStream) ne doivent-elles pas être indépendantes entre Client et ClientAuth malgré le fait qu'elles étendent toutes deux la même classe? Ou est-ce parce que tous deux étendent la même classe, ils partagent les valeurs?
J'espère que je fait ma question assez claire ..
Il n'y a toujours qu'une seule instance d'une variable statique. c'est la définition de statique. – nhouser9
Les variables statiques sont partagées entre toutes les instances de la classe et ses sous-classes. Il n'y a pratiquement pas d'héritage ou de substitution de variables statiques, elles ne sont pas comme des «variables de classe» auxquelles vous pouvez être habitué dans d'autres langues. – pvg
S'il vous plaît ne pas décrire vos classes, montrez le code réduit au minimum nécessaire pour communiquer votre question (voir [mcve]) –