Объектно-ориентированное программирование. Полиморфизм и наследование

Предмет: Программирование на Java
Раздел: Объектно-ориентированное программирование. Полиморфизм и наследование.
Разбор кода:
  1. Есть два класса — Catty и Kitten, причем Kitten наследует (extends) класс Catty.
    • В классе Catty объявлено поле x со значением 0 и метод printX(), который выводит это значение на экран.
    • В классе Kitten, который наследует Catty, также есть переменная x, но со значением -1. Этот класс переопределяет метод printX(), но все еще выводит значение своей переменной x.
  2. Далее создается отдельный класс 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

Программа выведет -1.

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!

Заполните, пожалуйста, данные для автора:

  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн