public class father {
private static int i=10;
father() {
System.out.println("Father is call");
}
}class sun extends father {
private int j=20;}class test {
public static void main(String args[]) {
sun s = new sun();
System.out.println(s.j);
}
}为什么我的sun子类连自己的变量j都不能访问?如果我想输出father类的变量i 如果保持父类的变量是private是不是不可能实现?我的子类继承了父类的变量i,拥有所有权,只是没有使用权,如果是这样的话我不修改父类的私有变量,我只是输出父类的私有变量可以吗
private static int i=10;
father() {
System.out.println("Father is call");
}
}class sun extends father {
private int j=20;}class test {
public static void main(String args[]) {
sun s = new sun();
System.out.println(s.j);
}
}为什么我的sun子类连自己的变量j都不能访问?如果我想输出father类的变量i 如果保持父类的变量是private是不是不可能实现?我的子类继承了父类的变量i,拥有所有权,只是没有使用权,如果是这样的话我不修改父类的私有变量,我只是输出父类的私有变量可以吗
protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
我现在是在做实验测试,以后想把程序的拓展性写得更好就自然会去写get方法,但我现在想验证的是父类的私有成员变量能继承吗? 如果能继承,“我的子类继承了父类的私有变量i,拥有所有权,只是没有使用权” 这句话说法对吗?
private 定义的变量不能从外部引用
s.j这是从外部引用了
private的目的是更好地隐藏变量,以免在外部程序中被不恰当地访问或修改
如果要从外部访问,必须在sun类中为它定义getJ()方法,访问方式如:
s.getJ()