Agreed, but:<p><pre><code>  Animal customer = new Cat();
</code></pre>
It makes it clear how the new object will be used. It does come up quite frequently, especially with Collection and List. Nobody was saying it is not verbose and can lead to boilerplate. The assertion is that when viewing a large code base, you are always sure of the type of value you are dealing with on a local level. If all of your objects are well defined, you don&#x27;t even need to look at how the class is created (a billion getters and setters? irrelevant to the local function) as you only need to deal with the local function.