首页 > 解决方案 > 抽象父类调用派生类方法

问题描述

所以我想知道类实例是如何构建的。

public abstract class test {

    int count;

    public test(){
        count();
        count();
        System.out.println("test" + this.count);
    }
    abstract void count();
}

public class derive extends test{

    int count;

    public derive(){
        System.out.println("derive");
    }
    @Override
    public void count(){
        count++;
    }
}
    public static void main(String[] args) {
    derived o = new derived();
}

输出是:

测试0

派生

为什么计数 = 0?而不是2?

标签: javainheritance

解决方案


因为您有两个名为count. 一个在 中可见test(但被 中的那个遮蔽)deriveint count从中删除并在 中derive标记。protectedtest


推荐阅读