Это может быть по многим причинам в вашем конкретном классе: может быть, ваш бетон на самом деле не расширяется Foo
?Или, может быть, он вызывает super.move()
где-то в своем теле.
Вместо того, чтобы выдавать исключение, правильный способ - определить класс и метод как abstract
, чтобы подклассы переопределяли его.
public abstract class Foo {
public abstract void move();
}
Обратите внимание, если Foo
имеет только абстрактные методы, как в приведенном выше примере, вам нужен interface
, а не абстрактный класс.Кроме того, вы должны назвать его, чтобы определить поведение
public interface Moving {
void move();
}
А затем:
public class MovingObject implements Moving {
....
@Override
public void move() {
// your implementation
}
....
}