Java多态性以及上下转型
2010-01-22 17:32
183 查看
问:老虎是动物吗?那么动物是老虎吗?
答:老虎当然是动物,动物不一定是老虎。 [废话]
现在你明白了,原来是这样:
向上转型:把一个具体的物种的实例归为总的动物类。即: 动物 动物实例 = new 具体物种();
向下转型:把一个总的动物实例归为一个具体的物种。
================================================================
用代码来说事吧:
------------------------------------------------------------------------------
动物类:
------------------------------------------------------------------------------
老虎类 继承 动物类
------------------------------------------------------------------------------
狮子类 继承 动物类
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
广告1:向上转型总是能成功的。只给一句代码
Animal animal = new Tiger();
向上转型:upcasting - 父类引用接受子类实例 [不会报错 + 不用强转] /
问题1:我们可以把一个动物类的实例交给老虎类吗? [直接向下转型]
Tiger tiger = new Animal(); //转型能成功吗?
-------------哈哈,你猜着了吗? 答案是:不会成功。
这是为什么呢?
问题2:既然我们可以用动物类接收一个老虎类实例,那么能把这个接收了老虎类实例的动物类引用再转成狮子类吗?
问题3:那我们如何才能把动物类引用赋给具体某一个物种呢?
答:老虎当然是动物,动物不一定是老虎。 [废话]
现在你明白了,原来是这样:
向上转型:把一个具体的物种的实例归为总的动物类。即: 动物 动物实例 = new 具体物种();
向下转型:把一个总的动物实例归为一个具体的物种。
================================================================
用代码来说事吧:
------------------------------------------------------------------------------
动物类:
public class Animal { public void bellow(){} }
------------------------------------------------------------------------------
老虎类 继承 动物类
public class Tiger extends Animal { public void bellow() { System.out.println("老虎吼叫。。。"); } }
------------------------------------------------------------------------------
狮子类 继承 动物类
public class Lion extends Animal { public void bellow() { System.out.println("狮子吼叫。。。"); } }
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
广告1:向上转型总是能成功的。只给一句代码
Animal animal = new Tiger();
向上转型:upcasting - 父类引用接受子类实例 [不会报错 + 不用强转] /
问题1:我们可以把一个动物类的实例交给老虎类吗? [直接向下转型]
Tiger tiger = new Animal(); //转型能成功吗?
-------------哈哈,你猜着了吗? 答案是:不会成功。
这是为什么呢?
问题2:既然我们可以用动物类接收一个老虎类实例,那么能把这个接收了老虎类实例的动物类引用再转成狮子类吗?
问题3:那我们如何才能把动物类引用赋给具体某一个物种呢?
相关文章推荐
- java 多态性以及 上下转换 代码
- JAVA_多态性演示a____自动向上转型、向下转型、检查对象是否为某个类型(instanceof)
- Java中多态以及向上转型和向下转型
- JAVA_多态性演示a____自动向上转型、向下转型、检查对象是否为某个类型(instanceof)
- Java自学之路-Java基础教程-18:Java四大特性之多态性以及接口interface
- java中的上下转型
- java中复写,以及向上转型的(转载)
- Java中的上下转型
- java上转型和下转型(对象的多态性)
- java上下转型
- java中接口的向上转型。和多态性
- Java____多态之上下转型与重写、重载概念复习
- JAVA笔记六(21-24 对象转型(多态性)、面向对象应用、抽象类和抽象函数)
- 关于Java向上转型和向下转型以及类型还原
- Java多态之向上转型、同名变量以及方法覆盖
- Java上下转型
- Java--多态(polymorphic),上下转型,多态好处弊端
- 7.创建以及启动一个Java线程
- 【java项目实践】详解Ajax工作原理以及实现异步验证用户名是否存在+源码下载(java版)
- JAVA线程状态以及synchronized,wait,sleep,yield,notify,notifyAll