Java 父类中有private私有变量,子类对象的内存中也有该变量存在,但是不能直接引用该变量,而是需要通过调用父类public或protected的set或get等方法使用该变量。
父类中的private变量在不同子类中是不同的对象存在。
import java.util.*;
import java.lang.Integer;
public class PSuperTest{
public static void main(String[] args){
Sub1 s1 = new Sub1();
s1.p();
Sub2 s2 = new Sub2();
s2.p();
}
}
class Sup{
private Object aa = new Object();
public void p(){
System.out.println("aa = " + aa);
}
}
class Sub1 extends Sup{
}
class Sub2 extends Sup{
}
输出为:
aa = java.lang.Object@527c6768
aa = java.lang.Object@525483cd
即不同的子类中拥有不同的该私有变量对象。