Methods that follow JavaBean naming contract for accessors are
expected
to have no side effects.
The recommended convention is to use a parameterless method whenever there are
no parameters and the method have no side effect.
This convention supports the uniform access
principle, which says that client code
should not be affected by a decision to implement an attribute as a field or method.
The problem is that Java does not implement the uniform access principle.
To bridge that gap, Scala allows you to override an empty-paren method with
a parameterless method.
In accordance with Liskov substitution
principle, as overridden method has no side effects,
the overriding method must also be declared as a method without side effects.
* Refer to Programming in Scala, 10.3 Defining parameterless methods