我目前正在开发一个java项目,老师并不是很擅长解释自己。 目前我一直试图在java中引用扩展类来获得平衡。 (我试图编辑天平,以便可以在数组中显示和更改。
我的主帐户看起来像这样
public class Account {
private String name;
private double quantity, price;
private double rate;
private Asset[] Asset;
}
扩展的帐户是
abstract public class Asset {
String symbol;
public String getSymbol() {
return symbol;
}
protected Asset(String symbol) {
this.symbol = symbol;
}
}
扩展看起来像这样;
public class Cash extends Asset {
private double Quantity;
public Cash(double Quantity, String symbol) {
super(symbol);
this.Quantity = Quantity;
}
@Override
public String getSymbol() {
return super.getSymbol(); //To change body of generated methods, choose Tools | Templates.
}
public double getQuantity() {
return Quantity;
}
public void setQuantity(double Quantity) {
this.Quantity = Quantity;
}
}
现在假设我有一个类Account的测试实例。 我如何编辑班级帐户的现金价值? (主要arg) 以下是我的其他扩展,仅供参考。
public class Stock extends Asset {
private String name;
private double quantity, rate;
public Stock(String name, double quantity, double rate, String symbol) {
super(symbol);
this.name = name;
this.quantity = quantity;
this.rate = rate;
}
@Override
public String getSymbol() {
return super.getSymbol(); //To change body of generated methods, choose Tools | Templates.
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getQuantity() {
return quantity;
}
public void setQuantity(double quantity) {
this.quantity = quantity;
}
public double getRate() {
return rate;
}
public void setRate(double rate) {
this.rate = rate;
}
}
如果有帮助,我怎样才能更改扩展类中的值? 我试过了
Asset[0] = new Cash(25000.00,string);
但这只会有助于手动设置值。 对于任何错误道歉,我对编码和java一般都很陌生。
答案 0 :(得分:1)
您为Asset数组命名的方式令人困惑,java区分大小写,因此请将其命名为:
if (asset[0] instanceof Cash) {
Cash cash = (Cash)asset[0];
// Then you can access the setQuantity method
cash.setQuantity(25000.00);
}
您需要通过强制转换获得正确类型的引用,然后才能访问它自己的方法。你可以这样做:
/*** Third Level Menu ***/
.main-menu > li > ul li > ul{
font-size: 18px;
color: #fff;
font-style: italic;
right: 0;
margin-top: calc(-29px - 1.55em) /* Negative your list item padding - font size*/
background:#6689c5 url(images/shadower.png) repeat-x;
display: none;
position: absolute;
left: 100%;
white-space: nowrap;
}