File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes why cant a constructor be final? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "why cant a constructor be final?" Watch "why cant a constructor be final?" New topic
Author

why cant a constructor be final?

Sriram Chintapalli
Ranch Hand

Joined: Dec 16, 2003
Posts: 59
Can anyone reason out why a constructor cannot be declared final. A subclass does not inherit the constructor anyways so why bother?
dennis zined
Ranch Hand

Joined: Mar 07, 2003
Posts: 330
A subclass does not inherit the constructor anyways so why bother?

Hi Sriram. Isn't that the answer to your question?
Here's a text from JLS to add more about what you cannot use for constructors:
Unlike methods, a constructor cannot be abstract, static, final, native, strictfp, or synchronized. A constructor is not inherited, so there is no need to declare it final and an abstract constructor could never be implemented. A constructor is always invoked with respect to an object, so it makes no sense for a constructor to be static. There is no practical need for a constructor to be synchronized, because it would lock the object under construction, which is normally not made available to other threads until all constructors for the object have completed their work. The lack of native constructors is an arbitrary language design choice that makes it easy for an implementation of the Java virtual machine to verify that superclass constructors are always properly invoked during object creation. Note that a ConstructorModifier cannot be declared strictfp. This difference in the definitions for ConstructorModifier and MethodModifier (�8.4.3) is an intentional language design choice; it effectively ensures that a constructor is FPstrict (�15.4) if and only if its class is FP-strict.
[ January 28, 2004: Message edited by: dennis zined ]

SCJP 1.4<br />SCWCD 1.4
Sriram Chintapalli
Ranch Hand

Joined: Dec 16, 2003
Posts: 59
thanks a lot Dennis,
I guessed the designers would think it wouldnt hurt to make a constructor final because it would just be redundant. Your answer really helped me clear things up about constructors on a whole thanks again.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: why cant a constructor be final?