Witam wszystkich serdecznie ;),
jestem tu nowym userem i początkującym programistą Javy ;)
Prosiłbym o sprawdzenie mi tego zadania, którego treść przedstawiam poniżej:
Zdefiniować klasy z poniższego programu:
public class Test {
public static void main(String[] args) {
Pacjent[] pacjenci = { new ChoryNaGłowę("Janek"),
new ChoryNaNogę("Edzio"),
new ChoryNaDyspepsję("Marian")
};
for (Pacjent p : pacjenci) {
System.out.println("Pacjent: " + p.nazwisko() + '\n' +
"Chory na: " + p.choroba() + '\n' +
"Zastosowano: " + p.leczenie() +"\n\n"
);
}
}
}
w taki sposób, aby otrzymać w wyniku następujący wydruk:
Pacjent: Janek
Chory na: głowa
Zastosowano: aspiryna
Pacjent: Edzio
Chory na: noga
Zastosowano: gips
Pacjent: Marian
Chory na: dyspepsja
Zastosowano: węgiel
Uwaga: metody choroba() i leczeanie() muszą być wywoływane polimorficznie.
A oto moje rozwiązanie:
abstract class Pacjent {
private String name;
public Pacjent() {
}
public Pacjent(String name) {
this.name= name;
}
abstract String nazwisko();
abstract String choroba();
abstract String leczenie();
}
class ChoryNaGłowę extends Pacjent {
private String nazwisko;
public ChoryNaGłowę(String name) {
super(name);
nazwisko = name;
}
public String nazwisko() {
return nazwisko;
}
public String choroba() {
return "głowa";
}
public String leczenie() {
return "aspiryna";
}
}
class ChoryNaNogę extends Pacjent {
private String nazwisko;
public ChoryNaNogę(String name) {
super(name);
nazwisko = name;
}
public String nazwisko() {
return nazwisko;
}
public String choroba() {
return "noga";
}
public String leczenie() {
return "gips";
}
}
class ChoryNaDyspepsję extends Pacjent {
private String nazwisko;
public ChoryNaDyspepsję(String name) {
super(name);
nazwisko = name;
}
public String nazwisko() {
return nazwisko;
}
public String choroba() {
return "dyspepsja";
}
public String leczenie() {
return "węgiel";
}
}