Java继承的变量返回null

时间:2017-05-19 13:11:21

标签: java object inheritance arraylist null

当我尝试在子类中使用超类“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++;

1 个答案:

答案 0 :(得分:1)

从子类调用的构造函数如下所示:

public arxiki(String onoma){
}

显然缺少赋值,将其添加到构造函数的主体:

 this.onoma=onoma;
相关问题