Я новичок в Java, но не в программировании. Я читаю книгу "Начало игр для Android", и есть абстрактный класс, который получает экземпляр здесь (строка 10), и я не могу понять, как создать экземпляр абстрактного класса?
класс абстрактный, потому что он наследует абстрактный метод из класса Game (реализует Game).
Он не получает экземпляр. Вы пришли из C++? Если это так, вы должны помнить, что этот синтаксис объявляет ссылку, которая не имеет проблем с абстрактным типом?
AndroidGame
не получает экземпляр в строке 10 или в любой другой строке класса, он просто объявляется как член.
Он должен быть передан конструктору класса, строка 16, и, таким образом, это происходит:
AndroidGame
должен быть инициализирован вне класса и затем передается в FastRenderView
чтобы сделать текущий экран доступным для рисования (строка 44).
Чтобы иметь возможность быть созданными в другом месте, нужно вывести из AndroidGame
и переопределить методы abstact.
Ничто не создается в строке 10; который объявляет ссылку на AndroidGame
.
Ссылка на AndroidGame
может ссылаться на все, что расширяет AndroidGame
.
Существует абстрактный класс, который создается здесь (строка 10):
AndroidGame game;
Ложь! Здесь ничего не создается. Вы объявляете ссылку на тип AndroidGame
, что отлично. (Пудель - это тип животного, хотя животное является абстрактным типом). Основной экземпляр должен быть конкретным подклассом AndroidGame
.
Активация происходит с использованием new
оператора.
Нет, эта строка № 10 ничего не instantiate
. Это просто декларация. Переменная game
получает свою ссылку, вероятно, экземпляр класса, который полностью реализует абстрактный класс через конструктор - AndroidFastRenderView
.
instantiate
. Это просто декларация. Переменнаяgame
get является ее ссылкой, вероятно, экземпляром класса, который полностью реализует абстрактный класс через конструктор.