码迷,mamicode.com
首页 > 编程语言 > 详细

Java 中 父类变量访问子类方法 需要使用 类型转换 (instenceof)关键字 /类型判断/

时间:2016-04-18 10:06:24      阅读:456      评论:0      收藏:0      [点我收藏+]

标签:

通过数组元素访问方法的时候只能访问在 Animal中定义的方法,对

于 Tiger类和  Fish中定义的方法时却不能调用,例如语句  animal[2].swim();就是不正确的。当

需要访问这些方法时需要用到类型转换,演示程序如下。

 1 public class DynamicMethodDemo2{
 2 public static void main(String args[ ]){
 3 Animal [ ]animal=new Animal[3];
 4 animal[0]=new Animal();
 5 animal[1]=new Tiger();
 6 animal[2]=new Fish();
 7 DynamicMethodDemo2 dm=new DynamicMethodDemo2();
 8 dm.move(animal[0]);
 9 dm.move(animal[1]);
10 dm.move(animal[2]);
11 }
12 void move(Animal animal){
13 //进行对象类型的判断
14 if(animal instanceof Tiger)
15 ((Tiger)animal).tigerRun();
16 else if(animal instanceof Fish)
17 ((Fish)animal).swim();
18 else animal.sleep();
19 }
20 }

 

主要看 move方法,move方法首先判断   animal对象是哪个类的对象,由判断执行不同的

方法。在判断过程使用了  instanceof运算符,它是用来判断对象类型的一个运算符。当判断

出它的类型之后,再对其进行类型转换,得到原始类型后就可以调用它的类所特有的方法了。

Java 中 父类变量访问子类方法 需要使用 类型转换 (instenceof)关键字 /类型判断/

标签:

原文地址:http://www.cnblogs.com/john69-/p/5403211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!