有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

继承在Java中如何使用super关键字解决这个问题

public class CommissionCompensationModel
{
  private double grossSales;
  private double commissionRate;

  public CommissionCompensationModel(double grossSales, double commissionRate)
  {
    this.grossSales=grossSales;
    this.commissionRate=commissionRate;
  }
}

这是我的佣金补偿模型课

public class BasePlusCommissionCompensationModel extends CommissionCompensationModel
{
  protected double baseSalary;

  public void BasePlusCommssionCompenationModel(double grossSales, double commissionRate, double bs)
  {
    **super(grossSales, commissionRate);**
    this.baseSalary=bs;
  }
}

这是前一个的子类。它打算继承其超类并添加BaseSalary属性。但是,IDE告诉我,强文本存在一些问题。如何解决这个问题


共 (2) 个答案

  1. # 1 楼答案

    构造函数没有返回类型,甚至没有void。此外,这里有一个输入错误-BasePlusCommssionCompenationModel,而不是BasePlusCommissionCompensationModel(在“m”后面缺少一个“i”)

    修正输入错误并删除返回类型,你应该会没事的:

    public BasePlusCommissionCompensationModel(double grossSales, double commissionRate, double bs)
    {
        super(grossSales, commissionRate);
        this.baseSalary=bs;
    }
    
  2. # 2 楼答案

    子类中的构造函数写错了

    构造函数不能有返回类型,甚至不能是void

    更新如下:

    class CommissionCompensationModel {
        private double grossSales;
        private double commissionRate;
    
        public CommissionCompensationModel(double grossSales, double commissionRate) {
            this.grossSales = grossSales;
            this.commissionRate = commissionRate;
        }
    }
    
    class BasePlusCommissionCompensationModel extends CommissionCompensationModel {
        
        protected double baseSalary;
        
        public BasePlusCommissionCompensationModel(double grossSales, double commissionRate, double bs) {
            super(grossSales, commissionRate);
            this.baseSalary = bs;
        }
    
    }