A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

以下程序执行的结果是( ) ----- 单选
class Fu{
public int num = 10;
public Fu(){
System.out.println("fu");
}
}
class Zi extends Fu {
public int num = 20;
public Zi(){
System.out.println("zi");
}
public void show(){
int num = 30;
System.out.println(num);
System.out.println(this.num);
System.out.println(super.num);
}
}
class Test1_Extends {
public static void main(String[] args) {
Zi z = new Zi();
z.show();
}
}      
A、zi zi 10 20 30
B、fu zi 30 20 10
C、fu fu 10 20 30
D、fu zi 10 10 30

2 个回复

正序浏览
选B,z.show()时,子类先构造函数初始化,因为子类构造函数里第一行默认有super(),所以会先访问父类,所以就 有了Fu,Zi;    print(num),是打印函数里的num,30,因为没有被调用,print(this.num);this代表的是zi这个对象,所以是打印zi这个对象的成员变量num,20;    print(super.num)是父类在调用,输出的是父类的成员变量num,10
回复 使用道具 举报
BBBBBBBBBBB
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马