private修饰的成员变量和方法不能被继承?

看完代码就懂了:

public class B extends A {
    public static void main(String[] args) {
        B b = new B();
        System.out.println(b.getVal2());
        System.out.println(b.getVal1());
        System.out.println(b.getVal2());
    }
}

class A {
    final int val1 = 1;
    private int val2 = 2;

    final int getVal1() {
        setVal2(3);
        return val1;
    }

    private void setVal2(int val2) {
        this.val2 = val2;
    }

    final int getVal2() {
        return val2;
    }
}

输出结果:

2
1
3

所以,private修饰的方法可以被继承,简单的说,子类可以继承父类所有成员变量和属性(内部类除外),包括final或private修饰的,只不过子类继承父类的private属性或方法时,子类不能直接去调用他。但是可以通过从父类继承来的方法调用他。

猜你喜欢

转载自blog.csdn.net/qq_25864827/article/details/84759488