我有3个班级:
我的驱动程序中有一个ArrayList
来保存我创建的所有球衣。我将值输入并存储到球衣对象(stock, price, product, team, kit, size, gender)
。
股票,价格,产品在超类(运动装)和 团队,工具包,大小,性别在子类(泽西岛)中处理。
我希望显示所有球衣及其所有细节,例如:
Product 1:
**********
Product: Jersey
In stock: 50
Price: €35.0
Team: Manchester United
Kit: Home
Size: M
Gender: Male
Product 2:
**********
Product: Jersey
In stock: 70
Price: €25.99
Team: liverpool
Kit: Away
Size: L
Gender: Female
依旧......
arrayList是sportswear
我不知道在for loop
写些什么。这不起作用:
for(int i = 0; i < sportswear.size(); i++)
{
System.out.println("Product "+(i+1)+": "+sportswear.get(i).jerseyDisplay());
}
子类Jersey中的jerseyDisplay()
方法:
public void jerseyDisplay()
{
super.sportswearDisplay();
System.out.println("Team: "+team);
System.out.println("Kit: "+kit);
System.out.println("Size: "+size);
System.out.println("Gender: "+gender);
}
超类(Sportswear)中的sportswearDisplay()
方法:
public void sportswearDisplay()
{
System.out.println("Product: "+product);
System.out.println("In stock: "+stock);
System.out.println("Price: \u20AC"+price);
}
答案 0 :(得分:1)
通常的做法是覆盖课程中的toString。你试过吗?
答案 1 :(得分:0)
继承的整体美妙之处在于,您可以为一般方法提供多种实现。超类以及超类的任何调用者只需知道方法签名,他们不需要知道方法的确切实现,如子类中所定义。
我要做的是在SportsWear类中创建一个display
方法,让Jersey覆盖它。然后你可以告诉SportsWear执行该方法,并且将调用Jersey内部的方法。
//Inside Sportswear class:
public String display() {
//todo
}
//Inside Jersey class:
@Override
public String display() {
super.display();
//todo
}