Java Double一直返回0.0

Java Double一直返回0.0,java,class,inheritance,tostring,Java,Class,Inheritance,Tostring,所以我的问题很简单,我试图实现方法形状,并试图打印出球体和圆锥体的半径、面积和体积。现在我不是在要求帮助我做作业,所以请容忍我。只是了解一下为什么我的double没有输出我想要的变量 所以现在我所要做的就是使用toString方法来打印半径为+r的“a”+名称+” 应该是“半径为6.3的球体” 但是当我运行我的程序时,会显示“半径为0.0的球体” 这是我的密码: //Main Class public class CircleShape { String name;

所以我的问题很简单,我试图实现方法形状,并试图打印出球体和圆锥体的半径、面积和体积。现在我不是在要求帮助我做作业,所以请容忍我。只是了解一下为什么我的double没有输出我想要的变量

所以现在我所要做的就是使用toString方法来打印半径为+r的“a”+名称+”

应该是“半径为6.3的球体” 但是当我运行我的程序时,会显示“半径为0.0的球体”

这是我的密码:

//Main Class    
public class CircleShape
{
    String name;  
    double radius;
    double area;
    double volume;

    CircleShape(){
    }
        CircleShape(String n, double r, double a, double v)
    {
        name = n;
        radius = r;
        area = a;
        volume = v;
    } 
}

//Extension
public class SphereShape extends CircleShape
{
    public String name;
    public double r;


    public SphereShape(String n, double r)
    {
        name = n;
        radius = r;
    }

    public String getName(String name)
    {
        return name;
    }

    public void setName(String n)
    {
        name = n;
    }

    public double getRadius()
    {
        return radius;
    }

    public void setRadius(double r)
    {
    radius = r;
    }

    public String toString()
    {
    return "A " + name + " of radius " + r;
}


}
//Driver/Tester
public class CircleShapeTest extends CircleShape
{

    public static void main(String[] args)
    {
         SphereShape sph = new SphereShape("sphere", 6.3);


         System.out.println(sph);

   }
}

您从未设置类变量
r
,您正在设置
圆形的
半径
,但从未使用此变量

改变
返回“A”+name+“半径”+r;

返回半径的“A”+名称+”“+半径

不要在子类中重新声明相同的字段。
CircleShape
中的四个声明足够好,可以通过
SphereShape
进行设置和访问。重新创建新字段是不必要的,也是令人困惑的,并导致了您的错误。

此外,当我编译时,我没有收到任何错误:/*Facepalm!谢谢大家!@托伯萨,好建议。只是删除了DUP并编译得很好。