java中的构造规则。
| 父类:P.class | |
| public class P { | |
| public P() { | |
| // TODO Auto-generated constructor stub | |
| Log.i("test", "parent create"); | |
| } | |
| public P(String s) { | |
| // TODO Auto-generated constructor stub | |
| Log.i("test", "parent create s"); | |
| } | |
| } |
| 子类:C.class | |
| public class C extends P{ | |
| public C() { | |
| Log.i("test", "child create"); | |
| } | |
| public C(String s) { | |
| Log.i("test", "child create s "); | |
| } | |
| } |
当子类的构造函数没有super字段时,java会自动为子类增加一个无参的父类构造方法。
所以如果通过new
C()来构造一个C对象,实际的代码是:
public C() {
// auto add
super.P();
// auto add end
Log.i("test",
"child create");
}
如果父类也没有无参构造方法,子类是不能在不super父类的情况下直接写出无参构造函数的。
本文详细介绍了Java中构造器的规则,特别是关于父类和子类构造器的调用顺序及实现方式。当子类构造函数未显式调用父类构造器时,Java会自动插入一个默认的无参数父类构造器调用。文章还强调了如果没有无参数的父类构造器,则子类必须明确地调用父类的某个构造器。
1630

被折叠的 条评论
为什么被折叠?



