我是一个初学者,我正在努力学习java中的继承概念,我做了一个程序来计算继承的面积一个正方形和一个立方体的体积,我把立方体类扩展到了正方形类
正方形(父)
public class Persegi {
double sisi;
public double getSisi() {
return sisi;
}
public void setSisi(double sisi) {
this.sisi = sisi;
}
public double getLuas(){
return sisi * sisi;
}
}
多维数据集(子)
public class Kubus extends Persegi{
Persegi psg = new Persegi();
public double getVolume(){
return psg.getLuas() * psg.getSisi();
}
但是当我在主类中打印值时,子类不会从我在父类中创建的方法中获取值
主要类别
public class MainProgram {
public static void main(String[] args){
Persegi persegi = new Persegi();
Kubus kubus = new Kubus();
Scanner nilai = new Scanner(System.in);
System.out.print("Masukkan nilai sisi = ");
persegi.setSisi(nilai.nextInt());
System.out.println("Luas = "+persegi.getLuas());
System.out.println("Volume = "+kubus.getVolume());
}
结果就是这样的输出
2条答案
按热度按时间s1ag04yj1#
而不是
使用
您不需要在子类中创建父类的示例,您的子对象已经是一个示例了。
而且(正如其他人已经提到的),你必须打电话
setSisi()
上Kubus
示例主要是:
sxissh062#
persegi
以及kubus
是两个不同的物体。你没有设置任何属性kubus
. 所以java中double type的默认值0.0
打印用于kubus.getVolume()
你用的是psg
对象的属性来计算getVolume()
方法。如果你想为你的工作添加一个getter和setter
psg
:然后可以设置
psg
对象:然后你得到结果:
解释
Volume = 27.0
输出:getLuas()
退货3*3 = 9
getSisi()=3getVolume()
退货psg.getLuas() * psg.getSisi()
:9*3=27