Я знаю правило полиморфизма, которое мы можем отправить через такой параметр, как этот код
interface Animal {
void whoAmI();
}
class A implements Animal{
@Override
public void whoAmI() {
// TODO Auto-generated method stub
System.out.println("A");
}
}
class B implements Animal{
@Override
public void whoAmI() {
// TODO Auto-generated method stub
System.out.println("B");
}
}
class RuntimePolymorphismDemo {
public void WhoRU(List t){
System.out.println(t.getClass());
}
public static void main(String[] args) {
A a = new A();
B b = new B();
RuntimePolymorphismDemo rp = new RuntimePolymorphismDemo();
rp.WhoRU(a);
rp.WhoRU(b);
}
}
но
List<Example> examples = new ArrayList<Example>();
В приведенном выше коде яне понимаю, почему мы должны использовать List<Example>
.
Почему мы не можем использовать подобное?
ArrayList<Example> examples = new ArrayList<Example>();
Потому что, когда мы используем List<Example>
, мы не можем использовать метод, который существует только в ArrayList
классе, таком как trimToSize()
Как я могу узнать, когда использовать или не использовать?