-2 java constructor subclass superclass
这是我设置的基本课程,用于计算股票收益.关注这里的"股票"构造函数:
public class Stock{
private String symbol;
private int totalShares;
private double totalCost;
public void Stock(String symbol){
this.symbol = symbol;
totalShares = 0;
totalCost = 0.0;
}
public double getProfit(double currentPrice){
double marketValue = totalShares * currentPrice;
return marketValue - totalCost;
}
public void purchase(int shares, double pricePerShare){
totalShares += shares;
totalCost += shares*pricePerShare;
}
public int getTotalShares(){
return totalShares;
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个名为DividendStock的子类,它应该计算股息收益.
public class DividendStock extends Stock{
private double dividends;
public DividendStock(String symbol){
super(symbol);
dividends = 0.0;
}
public void payDividend(double amountPerShare){
dividends += amountPerShare*getTotalShares();
}
}
Run Code Online (Sandbox Code Playgroud)
这个类的构造函数不允许我调用超类的构造函数:super(symbol); 错误消息如下:"类库中的构造函数库存不能应用于给定类型;"
我已经找到了解决方案,但似乎一切都已到位.任何想法为什么它不允许我调用这个构造函数?
构造函数没有任何返回类型.当你输入返回类型时,它将是一种常规方法.
public void Stock(String symbol) {
this.symbol = symbol;
totalShares = 0;
totalCost = 0.0;
}
Run Code Online (Sandbox Code Playgroud)
应该
public Stock(String symbol) {
this.symbol = symbol;
totalShares = 0;
totalCost = 0.0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |