使用Object类型的多态引用是会付出代价的

Posted snc199x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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 }

技术分享

以上是关于使用Object类型的多态引用是会付出代价的的主要内容,如果未能解决你的问题,请参考以下文章

多态Object类和 JDK常用封装类型

当我们有多个类 继承同一个父类 这时候使用多态时候 可以使用该父类的类型做引用 不需要将object做引用

Java类的设计----多态性及其应用

从list引用调用arraylist和linkedlist对象的方法了解多态

Java多态(注意事项)

面向对象-多态