使用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 }

原文地址:https://www.cnblogs.com/saimeco/p/5874944.html