【发布时间】:2018-11-30 00:25:10
【问题描述】:
我必须重写 toString 方法才能打印出每个类:
“[Superclass]: [name-of-superclass] ---[subclass]: [name-of-subclass]”
每个班级的名称都有 getter getDescription
我知道子类,他们只需要做 super.getDescription 和 this.getDescription。
- 但我不明白对于超类 LivingRoomItem,它如何从其子类中调用所有 getDescription?
编辑:
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() ;
}
}
【问题讨论】:
-
什么是
list.size() <= i?通常是for (int i = 0; i < list.size(); ++i) -
@KevinO 哦!对不起,我纠正它。但是控制台仍然没有输出我的 totalPrice
-
不要用
double做数学运算,否则你会得到精度损失和意想不到的结果。而是使用java.math.BigDecimal -
@LudovicRonsin 好的!下次我编码时,我会注意到这一点。但是为什么我的控制台没有在我的方法上输出任何东西呢?
标签: java inheritance arraylist getter