Witam,
mając klasę student
oraz czlowiek
chcialbym najpierw stworzyc czlowieka i przypisac mu kilka cech a potem w zależności od wyboru użytkownika przekazać go do metody jako studenta, nauczyciela itd.
Wygląda to tak:
class Czlowiek {
}
class Student extends Czlowiek {
}
class Nauczyciel extends Czlowiek {
}
Czlowiek c = new Czlowiek();
switch (wybor) {
case 1:
Student s = (Student)c;
edytujStudenta(s);
break;
case 2:
Nauczyciel n = (Nauczyciel)c;
edytujNauczyciela(n);
break;
}
Niestety dostaję błąd: czlowiek cannot be cast to student. Mógłbym robić tak:
switch (wybor) {
case 1:
Student s = new Student();
s.setImie(c.getImie())
edytujStudenta(s);
break;
case 2:
Nauczyciel n = (Nauczyciel)c;
n.setImie(c.getImie())
edytujNauczyciela(n);
break;
}
Ale jest tu dużo powielania kodu. W takim razie jak to powinienem zrobić?