Я хочу написать метод, который получает объект того же типа, что и аргумент, но объявить его в базовом классе, но я не хочу, чтобы он принимал другой объект, производный от той же базы.
Например, у меня есть класс Animal, и я хочу написать метод sonOf (Animal a), но я не хочу, чтобы кто-то делал что-то подобное:
Animal bolt = new Dog();
Animal mittens = new Cat();
bolt.sonOf(mittens);
Я думаю, что дженерики нужны, но я не уверен, как правильно их использовать.
Спасибо.