import java.util.*;
class A {
protected int n;
public A(int a) {
n = a;
}
protected int disp() {
return n;
}
}
class B extends A {
// what should i do here
}
public class Hello {
public static void main(String[] args) {
//Your Code Here
int a =5;
A obj= new B(a);
System.out.print(obj.disp());
}
}
答案 0 :(得分:2)
您应该在B
类中执行以下操作:
class B extends A {
public B(final int a) {
super(a);
}
}
这里发生的是,我们正在调用父级(A
)的构造函数
答案 1 :(得分:2)
重要的是,A
是使用其构造函数之一初始化的。子类B
中的构造函数与A
中的构造函数的参数匹配是不必要。因此,您可以在子类B
中定义任何构造函数,但请确保在其中调用super( <some int> )
。
例如,即使以下情况也可以。
class B extends A {
public B(){ //Default constructor
super( 1 );
}
}
还
B
中有多个构造函数,则每个子类都必须调用super( <some int> )
。A
中有多个构造函数,则在子类构造函数中,可以通过super( <params> )
调用它们中的任何一个。