Finalize is an Object class method. This class is by default in every package. So what is the point of controlling the accessibility of this method accross package boundarier? Thanks Barkat
It's to keep you from doing stuff like: Object ob1 = new Object(); ob1.finalize(); while still allowing you to override the method in your own classes.