子类继承父类,麻烦看一下这段代码怎么改,并说明下原因,谢谢
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()加参数列表来调用自已这个类的其他构造方法。
如果子类的构造方法里没有显示的调用父类的构造方法,系统会找父类里面没有参数的那年构造方法。若你父类里面没有无参的构造方法,这时就会报错,因为编译器根本不知道你到底想调用哪一个父类的构造方法。