首页 > 解决方案 > 如何访问我的父类属性而不在父类中初始化它?

问题描述

我最近一周正在学习java,很抱歉这个愚蠢的问题,但是如果我只是在父类中声明一个变量而不在其中存储任何值,也许使用setter或构造函数来输入它的值,那么我可以使用这些值吗/子类中父类的属性?

class circle2 
{
    double radius;
    double Area;
    Scanner Sc = new Scanner(System.in);

    void SetRadius() {
        System.out.println("Enter Radius");
        radius = Sc.nextDouble();
    }
}
class cylinder2 extends circle2
    {
    double height=5,volume;
    void GetVolume(){

        volume=Math.PI*radius*radius*height;
        System.out.println("Volume of cylinder : " + volume);
    }
}

public class Ch10Alternate_PS {
    public static void main(String[] args) {
        circle2 obj = new circle2();
        obj.SetRadius();
        cylinder2 obj1 = new cylinder2();
        obj1.GetVolume();
  }
}

这给了我一个 0.0 的音量值

标签: javainheritance

解决方案


您正在创建两个对象,一个圆形和一个圆柱体。您正在设置圆的半径。然后你正在计算圆柱体的体积。你期待什么结果?

解决方法是设置圆柱体的半径:

    cylinder2 obj1 = new cylinder2();
    obj1.SetRadius();
    obj1.GetVolume();

示例会话:

Enter Radius
3
Volume of cylinder : 141.3716694115407

这个问题实际上与父类中的内容和子类中的内容没有任何关系。当您创建一个对象时,这一切都以同一个对象结束。


推荐阅读