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
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
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();
为私有属性加入get()和set()在子类中用语句访问父类的私有属性
System.out.println(super.getX()+","+super.getY()+","+super.getNum());
没有的话当然是指向父类在执行父类方法时自然会加载父类的私有对象。LZ你在想什么啊
对于你所说的第一个问题,如果属性或方法的作用域是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;
}对于第二个问题,我没看懂你是什么意思
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;
}
}