You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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;
    }
}

为什么之前的尝试无效

  1. 继承逻辑错误:你需要主类调用子类的计算功能,而非子类继承主类,继承在这里完全没必要
  2. 方法调用错误:即使实例化了FvX对象,静态方法也不需要通过对象调用;且你调用时未传递price和discount参数,也没接收返回值
  3. 变量未初始化:主方法中的savings没有被赋值,直接输出会导致编译失败

内容的提问来源于stack exchange,提问作者smouvfox805

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:30:56