class TestDemo{
private int x=1;
private int y=2;
private int sum;

public void testSum(){
sum=x+y;

System.out.println("the result is :"+sum);
}
}
class SonDemo extends TestDemo{
private int num1=9;
private int num2=12;
private int SUM;
public void show(){
SUM=num1+num2;
System.out.println("the SonDemo's result is :"+SUM);
System.out.println("---------------------------------------------------------");
this.testSum();//此处调用父类的方法,也就调用了父类中的私有变量,子类中如何能正常显示父类中的私有变量的值 }
}
public class ExtendsDemo {
public static void main(String args[]){ SonDemo sd=new SonDemo();
sd.show();
}}
输出结果为:
the SonDemo's result is :21
---------------------------------------------------------
the result is :3

解决方案 »

  1.   

    还是不是很清楚,加了get()和set()方法了 难道就不可以调用了么?
      

  2.   

    class TestDemo{
        private int x=1;
        private int y=2;
        private int sum;
        
        public void setSum(){
            sum=x+y;
            
            System.out.println("the result is :"+sum);
        }    public int getSum(){
           
            
            return sum;
        }
    }
    想计算就调setSum();
    想看sum就调getSum();
      

  3.   

    看见你的疑问了
    为私有属性加入get()和set()在子类中用语句访问父类的私有属性
    System.out.println(super.getX()+","+super.getY()+","+super.getNum());
      

  4.   

    。。你有在子类中重写testSum()方法吗?
    没有的话当然是指向父类在执行父类方法时自然会加载父类的私有对象。LZ你在想什么啊
      

  5.   

           this.testSum();//[color=#FF0000]此处调用父类的方法,也就调用了父类中的私有变量,子类中如何能正常显示父类中的私有变量的值什么意思?  你是不想让子类访问父类的私有变量呢 还是想知道如何访问父类的私有变量?
      

  6.   

    +1,但是你为什么要在子类中访问父类的private变量呢,那你还不如设置成protected类型的
      

  7.   

    把class一一放在单独文件中你就访问不到了饿
      

  8.   

    子类是否能调用父类的属性和方法主要是看父类的属性和方法的作用域。这个你可以查些资料。
    对于你所说的第一个问题,如果属性或方法的作用域是public或者protected,那么子类可以直接使用父类的属性或方法。
    对于你代码中所写的情况,因为属性是private的,所以我们一般可以使用get(),set()方法,当然get(),set()的作用域是public的。
             public int getX() {
    return x;
    } public void setX(int x) {
    this.x = x;
    } public int getY() {
    return y;
    } public void setY(int y) {
    this.y = y;
    } public int getSum() {
    return sum;
    } public void setSum(int sum) {
    this.sum = sum;
    }对于第二个问题,我没看懂你是什么意思
      

  9.   

    你在子类中写一个testSum()方法覆盖父类的方法不就行了吗,对于继承,子类有的调用子类,子类没有的调用父类
      

  10.   

    你在子类中写一个testSum()方法覆盖父类的方法不就行了吗,对于继承,子类有的调用子类,子类没有的调用父类
      

  11.   

    class TestDemo{
        private int x=1;
        private int y=2;
        private int sum;
        
        public void setSum(){
            sum=x+y;
            
            System.out.println("the result is :"+sum);
        }    public int getSum(){
           
            
            return sum;
        }
    }