Jak dodać zmienną do konstruktora z nadklasy, w podklasie.

0

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

1

Klasy powinny byc w jakis package,

1

Masz problem z dostępem do konstruktora z klasy Person. Jest ustawiony bez modyfikatora czyli package private, musisz albo klase Student przenieść do pakietu z klasą Person, lub ustawić konstruktor w klasie Person jako publiczny.

0

i Konstruktor dawaj zaraz po deklaracji zmiennych na początku.

0

Hej,

Dzięki za odpowiedzi, teraz działa.

Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1