Я читал об этом, вместо того, чтобы использовать методы instanceof
и getClass
для реализации полиморфизма, поскольку это лучше объектно-ориентированная практика.Как я могу использовать полиморфизм здесь для улучшения моего кода?
Если моя программа выглядит следующим образом:
Piece
SlowPiece extends Piece,
FastPiece extends Piece,
SlowFlexible extends SlowPiece,
FastFlexible extends FastPiece
И я следующее правило: SlowPiece's can only move one space, and FastPiece's as many as they'd like.
Как бы использовать polymorphism
, чтобы гарантировать, что если я двигаюсь Кусок как Piece piece1 = new SlowPiece();
что это не перемещается более одного?
У меня есть класс для игрового поля, и он должен иметь возможность перемещать кусок, но я не уверен, как остановить его от перемещения SlowPiece более 1 без обнюхивания кода.
В принципе, я понимаю, как полиморфизм фантастический, скажем, перечисляя вещи, но на самом деле взаимодействуя с ними, я не понимаю, как правильно его использовать.
Я бы сказал, что отправка вручную * никогда * не показывает полиморфизм (любого типа), но .. –
В любом случае, почему бы не просто метод int intNumberNumberOfSpaces() {..} '? Кроме того, рассмотрите * интерфейсы * для контрактов (подклассирование - это просто простой способ совместного использования поведения). –