java 向下转型问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:30:33
为什么它在向下转型时报错,请哪位高手帮我解释下我这个向下转型错在那,该怎样改,及原因是什么,本人不胜感激……急……
package cn.com.Interface;

public class TestDuo {

// private static final Dog TestDuotai = null;

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

TestDuotai t = new Dog();
t.call();

Dog d= (Dog)TestDuotai;
try{
d.sleep();
}
catch(NullPointerException e)
{
System.out.println("空指针异常错误");
}
t = new Cat();
t.call();

}

}

总体没问题...唯一的问题

Dog d= (Dog)TestDuotai;不能这么写

TestDuotai是个类型,类型转换操作的内容应该是对象

将这句改成Dog d= (Dog)t;

改后测试无误.

多态的条件是:继承,重写,父类引用指向子类对象。三个条件
缺一不可。
csdn,和博客园应该有很多这方面的帖子和博文,楼主应该
多看看