中学生薪薪 2022-06-15 13:50 采纳率: 57.1%
浏览 42

代码的输出结果为什么是2

class A{
public int i=0;
A(int m){
i=1;
}
}
public class B extends A{
B(int m){
i=2;
}
}
public static void main(String args[]){
B b=new B(100);
System.out.println(b.i);
}

  • 写回答

2条回答 默认 最新

  • 於黾 2022-06-15 14:00
    关注

    B继承A,先执行A的构造函数,然后执行B的构造函数
    B的构造函数里把i赋值成2了
    那不输出2输出什么
    而且你的classB里并没有把m向上传递,也就是类A执行的是默认的无参构造函数,有参构造函数不执行

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月15日

悬赏问题

  • ¥15 这种情况的伯德图和奈奎斯特曲线怎么分析?
  • ¥50 paddleocr带斜线的0很容易识别成9
  • ¥15 电子档案元素采集(tiff及PDF扫描图片)
  • ¥15 flink-sql-connector-rabbitmq使用
  • ¥15 zynq7015,PCIE读写延时偏大
  • ¥15 使用spss做psm(倾向性评分匹配)遇到问题
  • ¥20 vue+UEditor附件上传问题
  • ¥15 想做个WPS的自动化代码,不知道能做的起不。
  • ¥15 uniApp,生成安卓安卓包后,黑暗主题中间内容不生效,底部导航正常
  • ¥15 斯坦福自动漂移非线性模型反解