Java类间值返回问题:子类继承后无法返回储蓄值求助
问题修复:将计算的savings值返回给主方法
核心问题分析
- 主方法调用
computeDiscountInfo()时未传递参数,也未接收方法返回的计算结果 - 子类的
computeDiscountInfo是静态方法,不需要通过继承或实例化对象调用,直接用类名调用即可 - 主方法中的
savings变量未初始化,直接输出会触发编译错误
修改后的主类代码
package package1; import java.util.Scanner; public class GnX { public static void main(String[] args) { double price; double discount; double savings; Scanner scan = new Scanner(System.in); System.out.println("Enter a base price for the discount: "); price = scan.nextDouble(); System.out.println("Now, Enter a discount rate: "); discount = scan.nextDouble(); displayInfo(); // 直接通过子类类名调用静态方法,传入参数并接收返回的savings值 savings = FvX.computeDiscountInfo(price, discount); System.out.println("Special this week on any service over " + price); System.out.println("Discount of " + discount); System.out.println("That's a savings of at least $" + savings); } public static void displayInfo() { System.out.println("Paradise Guitar Is A Fantastic Place To Reherse"); System.out.println("This Rehersal Room Is Studio Based"); } }
修改后的子类代码(可移除不必要的继承)
package package1; // 静态方法不依赖继承关系,可直接移除extends GnX public class FvX { public FvX() { } public static double computeDiscountInfo(double price, double discount) { return price * discount / 100; } }
为什么之前的尝试无效
- 继承逻辑错误:你需要主类调用子类的计算功能,而非子类继承主类,继承在这里完全没必要
- 方法调用错误:即使实例化了
FvX对象,静态方法也不需要通过对象调用;且你调用时未传递price和discount参数,也没接收返回值 - 变量未初始化:主方法中的
savings没有被赋值,直接输出会导致编译失败
内容的提问来源于stack exchange,提问作者smouvfox805
相关产品推荐
相关产品推荐

