会拳击的袋鼠 2021-07-02 19:44 采纳率: 100%
浏览 60
已采纳

为啥第一个输出是0啊,迷惑啊

以下程序的输出结果是什么()

public class SubCls extends SuperCls {
int a = 6;

public SubCls(){
    test();

}
public void  test(){

    System.out.println(a);}
public static void main(String[] args) {
    new SubCls();

}}

class SuperCls{
int a = 8;

public SuperCls(){
    test();

}
public void  test(){
    System.out.println(a);

}

}

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2021-07-02 20:38
    关注

    理解一下,基类构造先调用,test调用的是子类的test,输出a,单此时子类构造尚未执行,a还是0。好吧,只能这么理解。你在两个test中在输出点别的,可以测试一下调用关系

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?