首先得看下面的程序理解类的继承的问题
package com.chen.javase;
public class Test4 {
public static void main(String[] args)
{
new A();
System.out.println("****************");
new A(1);
System.out.println("****************");
new B();
}
}
class A extends B
{
public A()
{
super(1);
System.out.print("A() ");
}
public A(int a)
{
System.out.print("A(inta) ");
}
}
class B
{
public B()
{
System.out.print("B() ");
}
public B(int a)
{
System.out.print("B(inta) ");
}
}
在一个类中可以有多个类,但是只能有一个公共的类,其他的都是内部类。当我们new一个类的时候,首先他会去new自己父类的构造方法,这个构造方法使无参的,这个相当于在子类的构造方法执行之前会进行这样的一个语句super(),这个是默认的执行。如果在子类的构造方
法中有super调用父类的构造方法,这时候new父类的构造方法时将由super决定,super调用哪个,就运行哪个构造方法。
请看下面是上面程序的执行结果
B(int a) A() ****************
B() A(int a) ****************
B()