如何覆盖Java中子类中的方法?

时间:2017-11-14 03:48:28

标签: java

首先,我需要覆盖方法:

public boolean recordBid(int bidPrice,String sellerID)

所以它管理出价的记录。

首先,如果bidPrice大于buyNowprice,则此bidPrice应重置为buyNowPrice。在重置投标价格后(如果需要),该方法应调用recordBid()方法的超类版本,将投标价格和卖方ID作为参数传递,并捕获它返回的结果(即将其存储在变量),以便可以检查以确定是否已成功记录出价。

我对如何捕获结果感到有点困惑,也不确定我是否在这里以正确的方式进行操作?。

我原来的recordBid()方法:

public boolean recordBid(int bidPrice, String bidderID)
{
  if (saleEnded == true)
  {
     return false;
  }

  else if (bidPrice <= this.highestBid)
  {
     return false;
  }

  else
  {
     this.highestBid = bidPrice;
     this.bidderID = bidderID;
     return true;
  }
} 

我的子类,我需要覆盖recordBid()

public class BuyItNowSale extends ItemSale {


//instance variables
private double buyNowPrice;
private boolean acceptingNearestOffer;



public BuyItNowSale(String itemNumber, String itemDescription, String itemCondition,
        String sellerID, boolean acceptingNearestOffer) {


super(itemNumber, itemDescription, itemCondition, sellerID);

    this.acceptingNearestOffer = false;


//overidden recordBid() method

public boolean recordBid(int bidPrice, String bidderID)  {

    if(bidPrice > buyNowPrice) {

        bidPrice = 0;
        super.recordBid(bidPrice, sellerID);

    }



}

1 个答案:

答案 0 :(得分:0)

根据您的要求

  

如果bidPrice大于buyNowprice,则此bidPrice应重置为buyNowPrice

你的方法应该是:

@Override
public boolean recordBid(int bidPrice, String bidderID)  {
    if(bidPrice > buyNowPrice) {
        bidPrice = (int) buyNowPrice;
    }
    return super.recordBid(bidPrice, sellerID);
}