У меня есть статическая переменная в моем классе 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
.
sharing
между занятиями? - person Eugene   schedule 26.11.2018