W jaki sposób mogę wyświetlić informację o obiekcie np
Pandas Teo = new Pandas(3, "Teo", "Panda", "Bamboo Leaves");
Aby było "Panda ma 3 lata, ma na imię Teo, rasa to Panda, żywi się Bamboo Leaves"
W jaki sposób mogę wyświetlić informację o obiekcie np
Pandas Teo = new Pandas(3, "Teo", "Panda", "Bamboo Leaves");
Aby było "Panda ma 3 lata, ma na imię Teo, rasa to Panda, żywi się Bamboo Leaves"
Bez żadnej informacji o Pandas
(który wygląda na idiotyczną owijkę tablicy), bez zmieniania w.w. kodu - nie możesz.
Obiekt tworzę na podstawie klasy, chcę go po prostu wyświetlić tak jak napisałem w przykładzie w pierwszym poście
class Pandas extends Animals {
String food;
Pandas(int ageOfTheAnimals, String nameOfTheAnimals,
String typeOfTheAnimals, String food) {
super(ageOfTheAnimals, nameOfTheAnimals, typeOfTheAnimals);
this.food = food;
}
}
Mając do dyspozycji tylko w.w. kod wciąż nie można tego zrobić chyba, że masz dostęp do tych informacji poprzez Animals
(ps. ta hierarchia dziedziczenia wydaje się być bezsensowną).
Wiem, że wydaje się być bezsensowną, niestety takie mamy robić zadanie z programowania
class Animals {
public static Ponys Ponys;
String nameOfTheAnimals;
String typeOfTheAnimals;
int ageOfTheAnimals;
Animals(int ageOfTheAnimals, String nameOfTheAnimals,
String typeOfTheAnimals) {
this.ageOfTheAnimals = ageOfTheAnimals;
this.nameOfTheAnimals = nameOfTheAnimals;
this.typeOfTheAnimals = typeOfTheAnimals;
}
Panda
a nie Pandas
, Animal
a nie Animals
. Klasa to na przykład "Krzesło", a nie kilka krzeseł.Animals
robi Ponnys
?Możesz dorzucić do swojego pandas to:
@Override
public String toString() {
return String.format(
"Panda ma %d lata, ma na imię %s, rasa to %s, żywi się %s",
ageOfTheAnimals, nameOfTheAnimals, typeOfTheAnimals, food
);
}
Z poprawną odmianą (rok/lata) sobie już chyba poradzisz.
Zaimplementuj dla obu klas toString().
// Pandas
public String toString() {
return String.format("[%s, %s]", food, super.toString());
}
// Animals
public String toString() {
return String.format("[%d, %s, %s]", ageOfTheAnimals, nameOfTheAnimals, typeOfTheAnimals);
}
System.out.println(Teo);
Uwaga: nie testowałem.