构造函数的小疑问

类的构造函数前面是没有限定符的,也就是默认成员,这种成员的访问范围为:同一类中可见,同一包中可见;但是不同包中不可见。
问题出现了,即使我定义Box类,不写构造函数,Box类还是会自动调用Object类的构造函数。显然Box类与Object类不在同一个包中,Box类是如何访问到Object类的构造函数?

4个回答

楼上说的都对,我来总结一下吧,
java里面的类都是Object的子类,
你不写构造函数,它会有一个默认的public 构造函数,正如一楼所说的,"同一类中可见,同一包中可见;但是不同包中不可见
这个是指访问他的权限,而不是它访问别的对象的权限。
",在调用Box的默认构造方法时,会先调用Object的构造方法,而它是public 的.
如果对调用顺序不清楚,可以看下,第四版在157页,呵呵

同一类中可见,同一包中可见;但是不同包中不可见
这个是指访问他的权限,而不是它访问别的对象的权限。
object当然是public了

如果你不写构造函数,那java就默认给它一个默认构造函数的

如下
public Box(){}

楼上正解
你就是不写构造函数,在编译阶段编译器也会给Box类写一个默认构造器的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问