java private私有属性怎么在子类中访问

class TianTi {
private double tiji;
private double zhiliang;
public TianTi(){}
public TianTi(double tiji,double zhiliang){
this.tiji=tiji;
this.zhiliang=zhiliang;
}
public void setTiji(double tiji) {
this.tiji=tiji;
}
public double getTiji() {
return tiji;
}
public void setZhiliang(double zhiliang) {
this.zhiliang=zhiliang;
}
public double getZhiliang() {
return zhiliang;
}
public void Xuanzhuan(){
System.out.println("天体在旋转");
}
public String toString(){
return "质量:"+zhiliang+",体积:"+tiji;
}
}
class Planet extends TianTi
{
private String name;
public void Planet(){}
public void Planet(String name,double zhiliang, double tiji){
this.name=name;
this.zhiliang=zhiliang;
this.tiji=tiji;
}
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void Xuanzhuan(){
if (name=="地球")
{
System.out.println("地球在旋转");
}else{
System.out.println("天体在旋转");
}
}
public String toString(){
return "名字:"+name+"质量:"+zhiliang+",体积:"+tiji;
}
}
public class TestPlanet{
public static void main(String[] args) {
Planet Earth = new Planet("地球",1.0,1.0);
System.out.println(Earth);
Earth.Xuanzhuan();

    Planet Huoxing = new Planet();
    Huoxing.setName("火星");
    Huoxing.setTiji(2.0);
    Huoxing.setZhiliang(2.0);
    System.out.println(Huoxing);
    Huoxing.Xuanzhuan();
}

}
图片说明

http://ask.csdn.net/questions/25346

私有变量当然是通过set/get方法方法。参考这个:http://blog.csdn.net/qq_19558705/article/details/49947317

如果用eclipse,建议用shift + alt + s 选择带有get/set字样的一列去自动生成,自己写很容易出错。

你的构造方法有问题,public void Planet(){}
public void Planet(String name,double zhiliang, double tiji){
this.name=name;
this.zhiliang=zhiliang;
this.tiji=tiji;
}
这一段,首先,构造方法没有返回值,还有构造方法里不能直接使用父类的私有变量,应改为
public Planet(){}
public Planet(String name,double zhiliang, double tiji){
super(tiji , zhiliang );
this. name= name;
}

在 TianTi类中,
public String toString(){
return "质量:"+zhiliang+",体积:"+tiji;
}应该改为:
public String toString(){
return "质量:"+getZhiliang()+",体积:"+getTiji();
}

在Planet类不能直接访问父类的私有成员,
public String toString(){
return "名字:"+name+"质量:"+zhiliang+",体积:"+tiji;
} 应该改为:
public String toString(){
return "名字:"+this.getName()+"质量:"+this.getZhiliang()+",体积:"+this.getTiji();
}

一般来说私有属性不能被子类,或者其他对象访问的,除非给这些这些属性提供访问方法如setter/getter等,或者其他可以访问这些私有属性的方法。