日期:2014-05-20  浏览次数:20648 次

子类继承父类,麻烦看一下这段代码怎么改,并说明下原因,谢谢
class A
{
  public A(int x)
  {}
}
class B extends A
{
  public B()
  {}
}
public class C
{
  public static void main(String[] args)
  {
  B b=new B();
  }
}

------解决方案--------------------

class A
{
public A(int x)
{}
}
class B extends A
{
public B(int x)
{
super(x);
}
}
public class C
{
public static void main(String[] args)
{
B b=new B(x);
}
}

------解决方案--------------------
class A
{
int b;

public A(int x)
{
this.b = x;
}
public int getB()
{
return b;
}
}
class B extends A
{
public B(int x)
{
super(x);
}
}
public class C
{
public static void main(String[] args)
{
B b=new B(3);
System.out.println(b.getB());
}

是不是这样?
------解决方案--------------------
class A {
public A() {
}

public A(int x) {
}
}

class B extends A {
public B() {

}
}

public class C {
public static void main(String[] args) {
B b = new B();
}
}
由于造一个子类对象必须先造一个父类对象,因此在子类对象构造的时候,会首先调用父类的构造方法。

子类对象可以通过如下方法调用父类的构造方法:(1)使用super加上参数列表,(2)this()加参数列表来调用自已这个类的其他构造方法。

如果子类的构造方法里没有显示的调用父类的构造方法,系统会找父类里面没有参数的那年构造方法。若你父类里面没有无参的构造方法,这时就会报错,因为编译器根本不知道你到底想调用哪一个父类的构造方法。