There are several reasons for a method not to have a method body:
UnsupportedOperationException should be thrown.
public function doSomething() {
}
public function doSomethingElse() {
}
public function doSomething() {
// Do nothing because of X and Y.
}
public function doSomethingElse() {
throw new UnsupportedOperationException();
}
Empty methods in abstract classes
abstract class Animal {
public function speak() {} // default implementation ignored
}