У меня есть статическая переменная в моем классе Base123
class Base123 {
public static int statvar;
}
, и у меня есть производный класс Inheritance111
, который расширяет Base123
public class Inheritance111 extends Base123 {
public static void main(String[] args) {
System.out.println(Inheritance111.statvar);
System.out.println(Base123.statvar);
Base123.statvar=10;
System.out.println(Inheritance111.statvar);
System.out.println(Base123.statvar);
System.out.println(statvar);
Inheritance111.statvar=20;
System.out.println(Inheritance111.statvar);
System.out.println(Base123.statvar);
System.out.println(statvar);
}
}
Я получил выводдля приведенного выше кода:
0 0 10 10 10 20 20 20
Для одного класса статическая переменная является общей для всех объектов этого класса.Но когда класс расширяется, наследуемая переменная в подклассе также является той же самой переменной?Поскольку изменения, сделанные с использованием
Inheritance111.statvar=20;
, изменяют значение Base123.statvar
.