Wenn ich versuche, eine Variable aus der Oberklasse "arxiki" in einer Unterklasse zu verwenden, wird der Wert null zurückgegeben. Grundsätzlich speichere ich die Objekte in einer ArrayList, und ich möchte sie drucken, also verwende ich toString() -Methode. Ich habe die Variablen initialisiert, super() in der Unterklasse verwendet, so dass ich nicht finden kann, was falsch ist.Die vererbte Java-Variable gibt null zurück
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();
}
Die Unterklasse von „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();
}
}
Die nächsten Codebeispiele sind nicht ganze Klassen, sondern die Teile, die den zuvor erwähnten classes.Here verwenden ist der Teil, wo ich die Arraylist füllen
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"));
Und schließlich der Teil einer Schleife, wo die Objekte innerhalb des Array gedruckt
Iterator <symvolaio> iterator = listasymvolaion.iterator();
while (iterator.hasNext()){
System.out.printf(listasymvolaion.get(k).toString());
k++;
Sie _are_ Aufruf '' Super (onoma) '', aber sehen Sie sich an, was dieser Konstruktor macht ... – f1sh
Das war es, danke! – SteliosA
Beachten Sie, dass es wirklich eine gute Übung ist, Mitgliedsvariablen endgültig zu machen, es sei denn, sie müssen * wirklich * änderbar sein. Dann können Sie sicher sein, dass Sie sie immer initialisieren. –