Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 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.