У меня есть метод, который получает абстрактный класс в качестве аргумента для целей полиморфизма.
Но внутри метода я хочу вернуть копию реального объекта.
Пример:
//Animal is an abstract class
public Animal findAndClone(Animal[] zoo){
for (Animal a:zoo)
//find some animal...
return new Animal(a) //cant instantiate an abstract class
}
Я пытался использовать конструктор копирования, как показано выше, но он не может создать реферат.
Я думал об определении clone()
в базовом классе, но я сталкиваюсь с той же проблемой в базовом классе.
Как это сделать правильно?
Спасибо.