如何访问我的父 class 属性 而无需在父 class 中对其进行初始化?
How can I access my parent class property without initializing it in the parent class?
我最近一周在学习 java,很抱歉提出这个愚蠢的问题,但是如果我只是在父 class 中声明一个变量而不在其中存储任何值,也许可以使用 setter 或用于输入其值的构造函数,那么我可以在子 class 中使用父 class 的那些 values/properties 吗?
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 的音量值
您正在创建两个对象,一个圆和一个圆柱。您正在设置圆的半径。然后你正在计算圆柱体的体积。你期待哪个结果?
解决方法是设置圆柱体的半径:
cylinder2 obj1 = new cylinder2();
obj1.SetRadius();
obj1.GetVolume();
示例会话:
Enter Radius
3
Volume of cylinder : 141.3716694115407
问题确实与父 class 中的内容和子 class 中的内容没有任何关系。当你创建一个对象时,它们最终都在同一个对象中。
我最近一周在学习 java,很抱歉提出这个愚蠢的问题,但是如果我只是在父 class 中声明一个变量而不在其中存储任何值,也许可以使用 setter 或用于输入其值的构造函数,那么我可以在子 class 中使用父 class 的那些 values/properties 吗?
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 的音量值
您正在创建两个对象,一个圆和一个圆柱。您正在设置圆的半径。然后你正在计算圆柱体的体积。你期待哪个结果?
解决方法是设置圆柱体的半径:
cylinder2 obj1 = new cylinder2();
obj1.SetRadius();
obj1.GetVolume();
示例会话:
Enter Radius
3
Volume of cylinder : 141.3716694115407
问题确实与父 class 中的内容和子 class 中的内容没有任何关系。当你创建一个对象时,它们最终都在同一个对象中。