以下关于继承条件下构造方法执行过程的代码的执行结果是( )。(选择一项)
class Person {
public Person() {
System.out.println("execute Person()");
}
}
class Student extends Person {
public Student() {
System.out.println("execute Student() ");
}
}
class PostGraduate extends Student {
public PostGraduate() {
System.out.println("execute PostGraduate()");
}
}
public class TestInherit {
public static void main(String[] args) {
new PostGraduate();
}
}
A. execute Person()
execute Student()
execute PostGraduate()
B. execute PostGraduate()
C. execute PostGraduate()
execute Student()
execute Person()
D. 没有结果输出
以下关于this和super关键字的说法错误的是( )。(选择二项)
A. this关键字指向当前对象自身,super关键字指向当前对象的直接父类
B. 在main方法中可以存在this或super关键字,但不能同时存在。
C. this和super关键字都可以访问成员属性,成员方法和构造方法
D. 在一个类的构造方法中可以同时使用this和super来调用其他构造方法
给出下面的代码段,在代码说明//assignment x=a,y=b处写入如下( )个代码是正确的。(选择一项)
public class Base {
int w, x, y, z;
public Base(int a, int b) {
x = a;
y = b;
}
public Base(int a, int b, int c, int d) {
// assignment x=a,y=b
w = d;
z = c;
}
}
A Base(a,b);
B. x=a,y=b;
C. this(a),this(b);
D. this(a,b)
以下Java程序编译运行后的输出结果是( )。(选择一项)
class HelloA {
public HelloA( ) {
System.out.println("HelloA");
}
{ System.out.println("I'm A class");
}
static {
System.out.println("static A");
}
}
public class HelloB extends HelloA {
public HelloB( ) {
System.out.println("HelloB");
}
{ System.out.println("I'm B class");
}
static {
System.out.println("static B");
}
public static void main(String[] args) {
new HelloB( );
}
}
下列选项中关于Java中super关键字的说法正确的是( )。(选择二项)
A super关键字是在子类对象内部指代其父类对象的引用
B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C. 子类通过super关键字只能调用父类的方法,而不能调用父类的属性
D. 子类通过super关键字可以调用父类的构造方法