I'm trying to put thing together in the definition of "immutability".
Item (3) here is saying, as one of the rules for creating immutable objects,
Dont allow subclasses to override methods. The simplest way to do this is to declare the class as final. ... Dont allow subclasses to override methods. The simplest way to do this is to declare the class as final. ...
Overridden methods run on instances of subclasse(s). And, from what i know of, an immutable class is one of which the objects are "carved" in memory once they are instantiated-- none of its members and thus the object can't be changed.
Putting these together-- does the definition of "immutable" apply to classes as well as the objects? By finalizing the methods, I'm preventing its methods from being overridden whenever the class is extended. I don't see how finalizing the methods of an immutable class further add on making its objects immutable.