There are several reasons for a method not to have a method body:

Noncompliant Code Example

public void doSomething() {
}

public void doSomethingElse() {
}

Compliant Solution

@Override
public void doSomething() {
  // Do nothing because of X and Y.
}

@Override
public void doSomethingElse() {
  throw new UnsupportedOperationException();
}

Exceptions

This does not raise an issue in the following cases:

public abstract class Animal {
  void speak() {  // default implementation ignored
  }
}