java.util.ArrayList<car> cList = new java.util.ArrayList<Car>();
car[] cArray = new car[20];
假设我有一个扩展汽车类的丰田类。Car 类有一个在 Toyota 类中被覆盖的 print 方法。
我知道如果我创建 Toyota 对象然后将它们放在 cArray 中,它们将成为 Car 对象,如果我想print(Toyota t)
在它们上调用函数,我需要在 print() 方法调用中转换对象,如下所示:(这会是向上还是向下?)
假设 cArray 在前 10 个索引中有 Toyota 对象
Toyota toy = (Toyota)cArray[0];
toy.print(toy); //this should call the Toyota's print method
如果我要使用 ArrayList,这可能吗?
Toyota toy = (Toyota)cList.get(0);
toy.print(toy); //does this call Toyota's print method or car's print method?
最后一点:我不确定这是否toy.print(toy)
是正确的方法,我已经阅读了教科书和 javadocs 等,但我之前没有见过 object.method(exactSameObject) 使用过。在我需要调用它的 Main 中,我使用Car.print(toy)
但是编译器声明它不能从静态上下文中引用。显然我不理解一些基本概念,请帮助!