首先a A=new a();后打印一个a;
b B=new b();后首先调用父类构造方法,然后再调用子类构造方法。
b B=new b();后首先调用父类构造方法,然后再调用子类构造方法。
解决方案 »
- Swing 问题
- sql 2000 分段取数据
- 怎样取到list中的值?
- java udp 协议
- setDefaultRowPrefetch(int) 和 setDefaultBatchValue(int)
- 如何解决这个空NullPointerException?
- 谈谈内类的使用以及技巧!
- 哪位大哥给小弟介绍一个好的java编译器!!谢谢
- struts的用法
- java Cloneable interface的实现。当super换成this报错
- !!!java可以调用windows中在dll文件中的api吗,可以的话怎么调用?
- 使用jacob实现word替换时,为什么不能连续替换?!代码如下!请大侠指点!
接着你又b B=new b();由于b是继承a的,所以b就继承了a的方法和域,所以先会回到a调用a的方法,于是先打印了一个a,接着调用自己的方法,于是又打印了b
{
public a()
{
System.out.println("a");
}
}
public class b extends a
{
public b()
{
super(); //系统会自动添加这行
System.out.println("b");
}
public static void main(String[] arg)
{
a A=new a(); // 该句调用类a的构造方法,输出 a
b B=new b(); // 该句调用类b的构造方法,其中第1句又调用了类a的构造方法,所以先输出a,再输出b
}
}
子类构造方法一定会调用父类构造方法,而且要放在子类构造方法第1句.
如果自己没有显式调用,系统会自动调用父类的无参构造方法,如果父类没有无参构造方法,会出错.
要调用父类有参构造方法,自己必须在子类构造方法第1句加上调用语句.
{
public a()
{
System.out.println("a");
}
}
public class b extends a
{
public b()
{
super(); //系统会自动添加这行
System.out.println("b");
}
public static void main(String[] arg)
{
a A=new a(); // 该句调用类a的构造方法,输出 a
b B=new b(); // 该句调用类b的构造方法,其中第1句又调用了类a的构造方法,所以先输出a,再输出b
}
}
子类构造方法一定会调用父类构造方法,而且要放在子类构造方法第1句.
如果自己没有显式调用,系统会自动调用父类的无参构造方法,如果父类没有无参构造方法,会出错.
要调用父类有参构造方法,自己必须在子类构造方法第1句加上调用语句.good!!