Java 在ArrayList(基于超类)中显示对象的值(来自子类)

Java 在ArrayList(基于超类)中显示对象的值(来自子类),java,class,inheritance,arraylist,Java,Class,Inheritance,Arraylist,我有三门课: 运动装(超类) 泽西岛(亚类) 司机 我的驱动程序中有一个ArrayList,用来存放我创建的所有球衣。我将值输入并存储到jersey对象中(股票、价格、产品、团队、套件、大小、性别) 库存、价格、产品在超类(运动装)和 团队、套件、大小、性别在子类(Jersey)中处理 我想显示所有球衣及其所有细节,例如: Product 1: ********** Product: Jersey In stock: 50 Price: €35.0 Team: Manchester United

我有三门课:

  • 运动装(超类)
  • 泽西岛(亚类)
  • 司机
  • 我的驱动程序中有一个
    ArrayList
    ,用来存放我创建的所有球衣。我将值输入并存储到jersey对象中
    (股票、价格、产品、团队、套件、大小、性别)

    库存、价格、产品在超类(运动装)和 团队、套件、大小、性别在子类(Jersey)中处理

    我想显示所有球衣及其所有细节,例如:

    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(int i = 0; i < sportswear.size(); i++)
            {
                System.out.println("Product "+(i+1)+": "+sportswear.get(i).jerseyDisplay());
            }
    
    超类(Sportswear)中的
    sportswearDisplay()
    方法:


    通常的方法是在类中重写。您试过了吗?

    继承的全部好处在于您可以为一个通用方法提供多个实现。超类和超类的任何调用方只需要知道方法签名,而不需要知道方法的确切实现,正如在子类中定义的那样

    我要做的是在SportsWear类中创建一个
    display
    方法,并让Jersey覆盖它。然后,您可以告诉SportsWear执行该方法,然后将调用Jersey中的方法

    //Inside Sportswear class:
    
    public String display() {
        //todo
    }
    
    //Inside Jersey class:
    
    @Override
    public String display() {
        super.display();
        //todo
    }
    

    你能不能说
    的意思不起作用
    ?你现在得到了什么还是错误?我不熟悉。我会查的。谢谢,谢谢。但是我现在得到了一个错误:
    'void'类型在for循环中是不允许的:
    for(inti=0;I
    @user636363如何实现
    display()
    ?它是否返回字符串?
    public void sportswearDisplay()
        {
            System.out.println("Product: "+product);
            System.out.println("In stock: "+stock);
            System.out.println("Price: \u20AC"+price);
        }
    
    //Inside Sportswear class:
    
    public String display() {
        //todo
    }
    
    //Inside Jersey class:
    
    @Override
    public String display() {
        super.display();
        //todo
    }