类的构造函数前面是没有限定符的,也就是默认成员,这种成员的访问范围为:同一类中可见,同一包中可见;但是不同包中不可见。
问题出现了,即使我定义Box类,不写构造函数,Box类还是会自动调用Object类的构造函数。显然Box类与Object类不在同一个包中,Box类是如何访问到Object类的构造函数?
楼上说的都对,我来总结一下吧,
java里面的类都是Object的子类,
你不写构造函数,它会有一个默认的public 构造函数,正如一楼所说的,"同一类中可见,同一包中可见;但是不同包中不可见
这个是指访问他的权限,而不是它访问别的对象的权限。
",在调用Box的默认构造方法时,会先调用Object的构造方法,而它是public 的.
如果对调用顺序不清楚,可以看下,第四版在157页,呵呵
同一类中可见,同一包中可见;但是不同包中不可见
这个是指访问他的权限,而不是它访问别的对象的权限。
object当然是public了
如果你不写构造函数,那java就默认给它一个默认构造函数的
如下
public Box(){}
楼上正解
你就是不写构造函数,在编译阶段编译器也会给Box类写一个默认构造器的。