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

An abstract class may have empty methods, in order to provide default implementations for child classes.

public abstract class Animal {
  void speak() {
  }
}