zhaiguo42 2015-06-17 07:20 采纳率: 0%
浏览 1446

求解一个关于JAVA的问题

我的代码如下:

public abstract class Example1 {
abstract void testAbstract();
Example1(){//(1)首先执行父类构造方法
System.out.println("before testAbstract()");
testAbstract();//如果调用了抽象方法,调用子类覆盖的方法。这里调用Atest类的testAbstract()方法
System.out.println("after testAbstarcat()");
}
public static void main(String args[]){
new Atest();
}
}
class Atest extends Example1{
private int i=1;//(2)使成员变量进行初始化
void testAbstract(){
System.out.println("testAbstract()"+i);
}
public Atest(){//(3)调用子类构造方法
System.out.println(i);
}
}
Eclipse执行结果如下:
before testAbstract()
testAbstract()0
after testAbstarcat()
1

我刚接触java不久,请教为什么是“testAbstract()0”而不是“testAbstract()1”?

  • 写回答

7条回答

  • bdmh 移动开发领域优质创作者 2015-06-17 07:36
    关注

    先执行父类的构造,此时Atest类自己的i还没有初始化,所以是0

    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名