Что происходит, когда объект подкласса передается методу с параметром суперкласса? - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь передать объект подкласса методу, у которого есть параметр суперкласса, поэтому мне нужно сделать только один из этого метода. У меня есть условные операторы, такие как «if (subclassObject instanceOf CertainSubClass)», поэтому он может сказать, из какого подкласса пришел объект.

Проблема в том, что как только объект передается параметру, программа, кажется, распознает его только как объект суперкласса. Тогда я не могу добавить его в ArrayList типа ArrayList<CertainSubClass>.

Что именно происходит с объектом подкласса, когда он передается методу с параметром суперкласса? И как я мог обойти эту проблему? Я бы предпочел не делать 3 метода для 3 подклассов, которые у меня есть. Спасибо

1 Ответ

1 голос
/ 25 марта 2019

«Я бы предпочел не делать 3 метода для 3 подклассов, которые у меня есть».

Но если ваш процесс отличается для каждого случая (и ваш экземпляр проверок сделает это так), тогда вы ИМЕЕТ 3 различных метода семантически. Объединять их в один метод только с целью сохранения некоторых объявлений методов - плохая идея.

...