I have to override toString method to make each class print out:
“[Superclass]: [name-of-superclass] ---[subclass]: [name-of-subclass]”
and I have getter getDescription for each classes' name
I know for subclasses, they only have to do super.getDescription and this.getDescription.
- But I don't understand for the superclass LivingRoomItem, how can it call all the getDescription from its subclass?
EDIT:
class livingRoomItem{
int id;
double price;
String color;
String description = "livingRoomItem";
livingRoomItem(int id, double price, String color, String description){
this.id = id;
this.price = price;
this.color = color;
this.description = description;
}
@Override
public String toString(){
return "[Superclass] :" + this.description + "----" + "[subclass]: ";
}
public String getDescription() {
return "livingRoomItem";
}
public void setDescription(String description) {
this.description = description;
}
class Sofa extends livingRoomItem{
private int seater;
Sofa(int id, double price, String color, String description, int seater){
super(id, price, color, description);
this.seater = seater;
}
@Override
public String getDescription(){
return "Sofa";
}
public int getSeater() {
return seater;
}
public void setSeater(int seater) {
this.seater = seater;
}
@Override
public String toString(){
return "[Superclass] :" + super.getDescription() + "----" + "[subclass]: "+ this.getDescription() ;
}
}