带有Orders和CreditOrders问题的Java继承

带有Orders和CreditOrders问题的Java继承,java,inheritance,Java,Inheritance,SMC接受客户的订单和信用订单。对于订单,客户提前支付订单价值。对于贷记订单,SMC将订单的全部美元价值贷记给客户(换句话说,客户不应提前支付订购的产品)。对于信用订单,客户和SMC代表在交付订单物品时,就客户将在订单美元价值基础上支付的利息(占订单价值的百分比)进行协商。利息值范围应介于10和20之间 对于第一部分,我认为我做得正确。(类顺序定义了实例变量orderId、clientName和orderValue。它还定义了一个带参数的构造函数、实例变量的toString方法和get/set类

SMC接受客户的订单和信用订单。对于订单,客户提前支付订单价值。对于贷记订单,SMC将订单的全部美元价值贷记给客户(换句话说,客户不应提前支付订购的产品)。对于信用订单,客户和SMC代表在交付订单物品时,就客户将在订单美元价值基础上支付的利息(占订单价值的百分比)进行协商。利息值范围应介于10和20之间

对于第一部分,我认为我做得正确。(类顺序定义了实例变量orderId、clientName和orderValue。它还定义了一个带参数的构造函数、实例变量的toString方法和get/set类型方法。)

然后对于第二部分,我感到困惑,这就是我到目前为止所做的。(类CreditOrder继承类顺序。此类继承类顺序的实例变量并定义其特定的实例变量兴趣。它还定义了带参数的构造函数、实例变量兴趣的get/set方法、新方法getCreditOrderTotalValue并重写方法toString。)我不确定兴趣是否正确完成,也不确定如何使用“getCreditOrderTotalValue”和重写toString方法

public class CreditOrder extends Order {

public int interest;

public CreditOrder(int orderId, String clientName, int orderValue) {
    super(orderId, clientName, orderValue);

}

/**
 * @return the interest
 */
public int getInterest() {
    return interest;
}

/**
 * @param interest
 *            the interest to set
 */
public void setInterest(int interest) {
    this.interest = interest;
}

    //getCreditOrderTotalValue

    //toString
}

首先,您需要清楚继承和面向对象范例中的工作方式。toString()方法来自java.lang.object,默认情况下自动继承到所有对象。以及在实现继承(受保护)的情况下正确使用访问说明符

因此,如果允许我建议对班级结构进行一些改变,那将是

public class Order {
   private int orderValue;
   //getters and setters, make protected
   public Order(int orderValue) {
      this.orderValue = orderValue;
   }
   protected int calculateOrderValue() {
      return this.orderValue;
   }
}
public class CreditOrder extends Order {
   private int orderValue;
   private float interestRate;
   //getters and setters for interestRate
   public CreditOrder(int orderValue, float interestRate) {
     super(orderValue);
     this.orderValue = orderValue;
     this.interestRate = interestRate;
   }
   public int calculateOrderValue() {
      return getOrderValue() * getInterestRate();
   }
}

您好,我再也看不到您的修改和我的评论了。发生了什么事?我刚刚摆脱了它,因为它似乎是错误的。我仍在试图计算信贷订单的SMC信贷客户与订单的全部美元价值(换句话说,客户不应提前支付订购的产品)。对于信用订单,客户和SMC代表在交付订单物品时,在订单美元价值的基础上协商客户将支付的利息(占订单价值的百分比)。利息价值范围应在10到20之间。
public class Order {
   private int orderValue;
   //getters and setters, make protected
   public Order(int orderValue) {
      this.orderValue = orderValue;
   }
   protected int calculateOrderValue() {
      return this.orderValue;
   }
}
public class CreditOrder extends Order {
   private int orderValue;
   private float interestRate;
   //getters and setters for interestRate
   public CreditOrder(int orderValue, float interestRate) {
     super(orderValue);
     this.orderValue = orderValue;
     this.interestRate = interestRate;
   }
   public int calculateOrderValue() {
      return getOrderValue() * getInterestRate();
   }
}