当我尝试在子类中使用超类“arxiki”中的变量时,它返回null值。基本上我将对象存储在ArrayList中,我想打印它们,所以我使用toString()方法。我已经初始化了变量,在子类中使用了super(),所以我找不到什么错误。
public class arxiki{
private String onoma;
private int pagio;
public arxiki(String onoma, int pagio){
this.onoma=onoma;
this.pagio=pagio;
}
public arxiki(){
}
public arxiki(String onoma){
}
public String getOnoma(){
return onoma;
}
public int getPagio(){
return pagio;
}
public String toString() {
return "\nOnoma: "+getOnoma();
}
“arxiki”的子类
public class symvolaio extends arxiki{
private int kodikos;
private String onomateponimo;
private String tilefono;
private String imerominia;
private String troposexoflisis;
public symvolaio(String onoma,int kodikos, String onomateponimo, String tilefono, String imerominia, String troposexoflisis){//symvolaioconstructor
super(onoma);
this.kodikos=kodikos;
this.onomateponimo=onomateponimo;
this.tilefono=tilefono;
this.imerominia=imerominia;
this.troposexoflisis=troposexoflisis;
}
public symvolaio(int kodikos){
}
public int getKodikos(){
return kodikos;
}
public String getOnomateponimo(){
return onomateponimo;
}
public String getTilefono(){
return tilefono;
}
public String getImerominia(){
return imerominia;
}
public String getTroposexoflisis(){
return troposexoflisis;
}
public String toString(){
return super.toString()+", Kodikos: "+getKodikos()+", Onomateponimo: "+getOnomateponimo()+", Tilefono: "+getTilefono()+", Imerominia Enarxis: "+getImerominia()+", Tropos Exoflisis: " + getTroposexoflisis();
}
}
下一个代码示例不是整个类,而是使用前面提到的类的部分。这是我填充ArrayList的部分
ArrayList<symvolaio> listasymvolaion= new ArrayList<>();
listasymvolaion.add( new symvolaio("symv15",1,"Babis Sougias", "6958349125"," 15/2/2013", "Metrita"));
listasymvolaion.add( new symvolaio("symv25",2,"Alexandros Kontopidis", "6942579632", "06/9/2015", "Pistotiki karta"));
listasymvolaion.add( new symvolaio("kart20",3,"Michael Santana", "69134865936", "25/12/2012", "Pistotiki karta"));
listasymvolaion.add( new symvolaio("kart30",4,"Kostas Mpalas", "6927941825", "23/5/2016", "Metrita"));
listasymvolaion.add( new symvolaio("int5",5,"Maria Imalap", "6942069880", "09/4/2014", "Pistotiki karta"));
listasymvolaion.add( new symvolaio("int10",6,"Gustav II Adolph", "696111632", "30/10/1611", "Metrita"));
最后是打印ArrayList中对象的循环部分
Iterator <symvolaio> iterator = listasymvolaion.iterator();
while (iterator.hasNext()){
System.out.printf(listasymvolaion.get(k).toString());
k++;
答案 0 :(得分:1)
从子类调用的构造函数如下所示:
public arxiki(String onoma){
}
显然缺少赋值,将其添加到构造函数的主体:
this.onoma=onoma;