追寻爱与自由的少年 2022-03-30 13:18 采纳率: 0%
浏览 36

这是一个有关Java的abstract类的问题

代码如下
package lecture2;
abstract class A{
private int x=100;
A(){
this.print();
}
public abstract void print();
}
class B extends A{
private int x=200;
B(int x){
this.x=x;
}
public void print() {
System.out.println("x="+x);
}
}
public class lecture2 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    B b=new B(20);
    b.print();
}

}
输出结果为:
x=0
x=2

为什么输出结果中第一行的x为0

  • 写回答

3条回答 默认 最新

  • 秋日的晚霞 优质创作者: Java技术领域 2022-03-30 14:01
    关注

    子类要实例化必须先实例化父类 实例化父类的时候调用了 this.print(); this是子类 调用了子类的 print() 方法 此时x 还是默认值 0

    评论

报告相同问题?

问题事件

  • 创建了问题 3月30日