下午好,
我有以下代码:
卡米奥对象:
public class Camiao {
private String codigo;
private int contaKm;
private int capacidade;
private String unidade;
private tipoCamiao tipoMotor;
public Camiao() {
}
public Camiao(String codigo, int contaKm, int capacidade, String unidade) {
this.codigo = codigo;
this.contaKm = contaKm;
this.capacidade = capacidade;
this.unidade = unidade;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public int getContaKm() {
return contaKm;
}
public void setContaKm(int contaKm) {
this.contaKm = contaKm;
}
public int getCapacidade() {
return capacidade;
}
public void setCapacidade(int capacidade) {
this.capacidade = capacidade;
}
public String getUnidade() {
return unidade;
}
public void setUnidade(String unidade) {
this.unidade = unidade;
}
}
Cisterna子类:
public class Cisterna extends Camiao {
private String subTipo;
public Cisterna() {
}
public Cisterna(String codigo, int contaKm, int capacidade, String unidade, String subTipo) {
super(codigo, contaKm, capacidade, unidade);
this.subTipo = subTipo;
}
/**
* @return the subTipo
*/
public String getSubTipo() {
return subTipo;
}
/**
* @param aSubTipo the subTipo to set
*/
public void setSubTipo(String aSubTipo) {
subTipo = aSubTipo;
}
}
Mercadorias子类:
public class Mercadorias extends Camiao {
/*public enum subTipoCamiaoMercadorias {
na, ba;
};*/
private String subTipo;
public Mercadorias() {
}
public Mercadorias(String codigo, int contaKm, int capacidade, String unidade, String subTipo) {
super(codigo, contaKm, capacidade, unidade);
this.subTipo = subTipo;
}
/**
* @return the subTipo
*/
public String getSubTipo() {
return subTipo;
}
/**
* @param aSubTipo the subTipo to set
*/
public void setSubTipo(String aSubTipo) {
subTipo = aSubTipo;
}
}
我将信息添加到数组的位置:
switch (codCamiao2) {
case "CI":camiao[i] = new Cisterna(linha[0], Integer.parseInt(linha[1]), Integer.parseInt(linha[2]), linha[3], linha[4]);
case "BT":camiao[i] = new Camiao(linha[0], Integer.parseInt(linha[1]), Integer.parseInt(linha[2]), linha[3]);
case "FG":camiao[i] = new Camiao(linha[0], Integer.parseInt(linha[1]), Integer.parseInt(linha[2]), linha[3]);
case "MC":camiao[i] = new Mercadorias(linha[0], Integer.parseInt(linha[1]), Integer.parseInt(linha[2]), linha[3], linha[4]);
}
我使用子类对象Cisterna和Mercadorias添加信息。
我使用主要对象Camiao添加信息;
我的问题是我可以在Camiao中访问我的GET和SET,但是在Cisterna和Mercadorias中却无法访问我的GET和SET。
我使用此代码编写,但我需要.getSubTipo()
码
System.out.println(camiao[x].getCodigo() + "|" + camiao[x].getContaKm() + "|" + camiao[x].getCapacidade() + "|" + camiao[x].getUnidade() + "|");
最佳答案
您似乎在Cisterna
和Mercadorias
子类中没有任何实例获取器/设置器。subTipo
和Cisterna
中的字段Mercadorias
是静态的-即在Cisterna
和Mercadorias
的所有实例之间共享。可能是错误,您需要从static
字段和相关的getter / setter方法中删除subTipo
修饰符。
另外,您需要在每个break
语句之后使用case
!
String codigo = linha[0];
int contaKm = Integer.parseInt(linha[1]);
int capacidade = Integer.parseInt(linha[2]);
String unidade = linha[3];
String subTipo = linha[4];
switch (codCamiao2) {
case "CI":
camiao[i] = new Cisterna(codigo, contaKm, capacidade, unidade, subTipo);
break;
case "BT":
case "FG":
camiao[i] = new Camiao(codigo, contaKm, capacidade, unidade);
break;
case "MC":
camiao[i] = new Mercadorias(codigo, contaKm, capacidade, unidade, subTipo);
break;
}