使用Object类型的多态引用是会付出代价的
1 import java.util.*; 2 public class FiveShi { 3 String name; 4 public void eat(){ 5 System.out.println("吃骨头"); 6 } 7 public static void main(String[] args){ 8 ArrayList<Object> myDogArrayList = new ArrayList<Object>(); 9 FiveShi aDog = new FiveShi(); 10 myDogArrayList.add(aDog); //放进去的是aDog类的对象 11 Object d = myDogArrayList.get(0); //返回的是Object类的对象 12 // d.eat(); 无法这样调用,因为Object里面没有eat方法 13 ((FiveShi)d).eat(); //把d转换成拥有eat方法的FiveShi类 14 } 15 }