不同于普通方法,构造方法(器)不能是abstract, static, final, native, strictfp, 或者synchronized的。原因如下:
- 构造器不是通过继承得到的,所以没有必要把它声明为final的。
- 同理,一个抽象的构造器将永远不会被实现。(所以也不能声明为abstract的)
- 构造器总是关联一个对象而被调用,所以把它声明为static是没有意义的。
- 没有实际的需要把构造器定义成同步的,因为它将会在构造的时候锁住该对象,直到所有的构造器完成它们的工作,这个构造的过程对其它线程来说,通常是不可访问的。 (synchronized)
- 本地化的方法情况特别复杂,所以JVM调用起来非常麻烦,需要考虑很多种情况,没有native关键字的情况下,JVM实现起来比较容易。
参考:http://www.cnblogs.com/plmnko/archive/2010/10/16/1852871.html