This question already has answers here:
Downcasting in Java
(11个答案)
5年前关闭。
为什么我们不能使用子类引用指向父类对象。
所以我的问题是
我只想检查是否正在执行
谢谢
(11个答案)
5年前关闭。
为什么我们不能使用子类引用指向父类对象。
class Abc
{
public void Message()
{
System.out.println("Abc");
}
}
class pqr extends Abc
{
public void Message()
{
System.out.println("pqr");
}
}
class test1
{
public static void main (String [] ars)
{
Abc a = new Abc();
a.Message();
Abc b = new pqr();
b.Message();
pqr c = new pqr();
c.Message();
//pqr d = new Abc();
}
}
所以我的问题是
Abc b = new pqr();
是否可能,为什么不pqr d = new Abc()
;(由于pqr是子类,它将具有父类的所有功能。)我只想检查是否正在执行
d.Message()
它将打印出父类方法还是子类方法。谢谢
最佳答案
很简单,每只狼都是动物,但并非每只动物都是狼。
因此Abc b = new pqr()
有效,但pqr d = new Abc()
无效。
09-13 10:24