It says in [this article](http://www.ibm.com/developerworks/java/library/j-jtp04223.html) that: 

> 
> Making a class final because it is immutable is a good reason to do so.
> 
> 
> 

I'm a bit puzzled by this... I understand that immutability is a good thing from the POV of thread-safety and simplicity, but it seems that these concerns are somewhat orthogonal to extensibility. So, why is immutability a good reason for making a class final?