Использование методов, определенных в интерфейсе, для вызова метода клонирования - PullRequest
0 голосов
/ 15 марта 2020

Итак, чтобы сделать его кратким и простым, у меня есть список фигур. Список - это все фигуры (круг, квадрат и т. Д.), Которые реализуют мой интерфейс Shape.

Теперь я пытаюсь глубоко клонировать / скопировать каждую фигуру в этом списке и поместить ее в новый список. Я сделал все формы, реализующие Clonable, и создал свои собственные методы для их глубокого копирования.

Проблема в том, что я не могу добраться до метода клона, когда они просто определены как фигуры. Мой вопрос заключается в том, как мне овладеть методом клонирования без необходимости приведения их в конкретные формы.

Я думал об этом и гуглил, но, похоже, не могу найти правильный ответ. И вот у меня появилась идея.

Могу ли я добавить метод "void callCloneMethod ();" в моем интерфейсе фигур и у реализации есть вызов метода clone () каждой конкретной формы? IOW может интерфейс реализовал метод вызова неинтерфейсных методов. ?

Заранее спасибо.

1 Ответ

1 голос
/ 15 марта 2020

Вы пытались позволить вашему интерфейсу Shape расширить интерфейс Cloneable? Это должно позволить вам вызывать метод для любой формы, если я не ошибаюсь. Затем вы должны, конечно, реализовать метод клонирования. Надеюсь, это поможет.

...