Cześć,
Zacząłem się uczyć Javy.
Pracuję nad dziedziczeniem i w klasie podrzędnej chcę dodać jedną zmienną do konstruktora.
Klasa nadrzędna:
public class Person {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
//konstruktor
Person(String fn, String ln) {
setFirstName(fn);
setFirstName(ln);
}
}
I mam klasę podrzędną:
public class Student extends Person {
Student(String fn, String ln, int idNumber) {
super(fn, ln); // BŁĄD: The constructor Person(String, String) is undefined.
setIdNumber(idNumber);
}
private int idNumber;// ZMIANNA: chcę dodać do konstruktora tą zmienną
public int getIdNumber() {
return idNumber;
}
public void setIdNumber(int idNumber) {
this.idNumber = idNumber;
}
}
Teraz jest tak, czytałem, że konstruktora nie da się przeciążyć, więc jak mam tworzyć instancję klasy Student z konstruktorem skoro nie mogę dodawać nowych zmiennych, charakterystycznych dla tej klasy? Muszę zamiast konstruktora zrobić zwykłą metodę w nad-klasie, którą da się przeciążać?
Jeśli mam konstruktor, to mam dodawać nowe zmienne poza nim?
Jak napisać w podrzędnej konstruktor, który będzie miał dodatkowe zmienne?
Pozdrawiam