 <p>Second is misleading. Someone who uses your class would expect to get something after executing this method. You should avoid writing such methods if they do not intend to return meaningful values under any circumstances.</p> <p>Even if you overidding class which returns something meaningful you should consider using <a href="http://sourcemaking.com/design_patterns/null_object" rel="nofollow">NullObject</a> design pattern so that you do not broke existing APIs and follow <a href="http://en.wikipedia.org/wiki/Liskov_substitution_principle" rel="nofollow">LSP</a>. Returning null creates redundancies with extra null checking logic and is counterintuitive.</p>