gpt4 book ai didi

java - 将参数传递给父类(super class)

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:16 25 4
gpt4 key购买 nike

嘿,伙计,我正在尝试使用构造函数来接受大量变量,然后将相关信息传递给父类(super class)构造函数。

我得到的错误是,当我使用 this.variable 时,它​​告诉我在类中创建该变量,但我认为调用 super 将允许我以这种方式使用它。

public class AuctionSale extends PropertySale {

private String highestBidder;
public AuctionSale(String saleID, String propertyAddress, int reservePrice, String highestBidder) {
super(saleID, propertyAddress, reservePrice);
this.saleID = saleID;
this.propertyAddress = propertyAddress;
this.reservePrice = reservePrice;
this.highestBidder = "NO BIDS PLACED";
}

如您所见,我已调用父类(super class) propertysale 来获取变量。

父类(super class)-

public class PropertySale {
// Instance Variables
private String saleID;
private String propertyAddress;
private int reservePrice;
private int currentOffer;
private boolean saleStatus = true;

public PropertySale(String saleID, String propertyAddress, int reservePrice) {
this.saleID = saleID;
this.propertyAddress = propertyAddress;
this.reservePrice = reservePrice;
}

还有很多额外的构造函数,但我认为它们现在无关紧要。

最佳答案

您收到错误的原因是因为以下变量在 PropertySale 类中具有 private 访问权限:

saleID
propertyAddress
reservePrice

您不能在子类 AuctionSale 中访问它们,除非父类(super class)将它们声明为 protectedpublic。然而,在这种情况下没有必要:您将这三个变量传递给 super 构造函数,因此它们会在基类中设置。你只需要在派生类的构造函数中调用super,然后处理派生类声明的变量,像这样:

public AuctionSale(String saleID, String propertyAddress, int reservePrice, String    highestBidder) {
super(saleID, propertyAddress, reservePrice);
this.highestBidder = "NO BIDS PLACED";
}

关于java - 将参数传递给父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com