Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Catty
и Kitten
, причем Kitten
наследует (extends) класс Catty
.
Catty
объявлено поле x
со значением 0 и метод printX()
, который выводит это значение на экран.Kitten
, который наследует Catty
, также есть переменная x
, но со значением -1. Этот класс переопределяет метод printX()
, но все еще выводит значение своей переменной x
.Test_2
, в котором находится метод main()
. В нем создается объект Kitten
, и для него вызывается метод printX()
.
x
в каждом классе (и в Catty
, и в Kitten
) является переменной экземпляра и находится в каждом экземпляре своего класса. Это означает, что переменная x
из класса Kitten
скрывает переменную x
из класса Catty
.printX()
вызывается у объекта Kitten
, и так как этот метод был переопределен в классе Kitten
, то вызывается именно версия из этого класса, которая выводит значение x
, принадлежащее объекту Kitten
.main()
создается объект класса Kitten
.
Kitten a = new Kitten();
printX()
. Поскольку переменная a
принадлежит типу Kitten
и переопределила метод printX()
, будет вызван метод из класса Kitten
, где выводится значение x
, равное -1.
a.printX();
Программа выведет -1.