7-1下列程序能否编译通过,如果变异错误,请修正。
class A {
A(int i) {
}
}
class B extends A {
}
编译错误,classA中定义了有参数的构造方法,子类中必须显式调用父类的构造方法,修改如下:
class A {
A(int i) {
}
}
class B extends A {
B() {
super(1);
}
}
7-2 运行类DEF,判断输出结果。
class ABC {
void print() {
System.out.print("ABC");
}
}
class DEF extends ABC {
void print() {
System.out.print("DEF");
}
public static void main(String args[]) {
ABC c = new ABC();
c.print();
}
}
输出:ABC
7-3 运行类DEF,判断输出结果。
class ABC {
void print() {
System.out.print("ABC");
}
}
class DEF extends ABC {
void print() {
System.out.print("DEF");
}
public static void main(String args[]) {
ABC c = new DEF();
c.print();
}
}
输出:DEF
7-4 对于下面的代码:
public void setVar(int a,int b,float c){}
A private void setVar(int a,float c,int b){}
B protected void setVar(int a,int b,float c){}
C public int setVar(int a,float c,int b){return a;}
D public int setVar(int a,int b,float c){return a;}
E protected float setVar(int a,int b,float c){return c;}
那些是对setVar方法的正确重载?
AC(重载只关心1方法名相同;2具有不同的形参列表:个数,类型,顺序)
7-5 下列关于接口的定义,正确的是:
A interface{void fun();}
B interface i1{void fun(){}}
C interface i1{int num;}
D interface i1{void fun();}
接口中只能定义抽象方法,不能有方法体,定义的数据成员必须是常量,所以正确的是D
7-6 下列关于main方法的声明中,可以作为程序入口的main方法是:
A public static void main()
B public static void main(String arg[])
C public void main(String[] arg)
D public static void main(String[] args)
E public static int main(String [] arg)
正确的为D
7-7 给定如下类和接口的定义:
interface A{}
class B{}
class C extends B implements A{}
class D implements A{}
B b=new B();
C c=new C();
D d=new D();
哪一项在编译时是合法的?
c=d;
d=c;
A a=d;
d=(D)c;
c=b;
7-8 对于下列代码:
public class Test extends Base{
public Test(int j){}
public Test(int j,int k){
super(j,k);
}
}
下列哪些是正确的调用构造方法的方式?
A Test t=new Test();
B Test t=new Test(1);
C Test t=new Test(1,2);
D Test t=new Test(1,2,3);
E Test t=(new Base()).new Test(1);
正确的是BC
7-9 对于下列的代码:
public class Test extends Base{
public Test(int j){
}
public Test(int j,int k){
super(j,k);
}
}
下列那个构造方法必须出现在父类Base中显示定义?
A.Base(){}
B.Base(int j){}
C.Base(int j,int k){}
D.Base(int j,int k,int l){}
AC
7-10 在下列的代码中有a,b,c,d,e等5个变量,在action方法中,可以访问到的变量是?
public class Outer{
public int a=1;
private int b=2;
public void method(final int c){
int d=3;
class Inner{
private void action(int e){
}
}
}
}
c d e