当您在 Java 中的超类类型的方法中返回子类时,我很难找到有关发生什么的细节。例如:
public class SuperClass
{
int a;
}
public class SubClass extends SuperClass
{
int b;
}
SuperClass superObj;
SubClass subObj;
private SuperClass getObject ()
{
return subObj;
}
public static void main (...)
{
superObj = getObject();
}
当 subObj 作为其超类返回时,它究竟会发生什么?我在输入这个例子时意识到,我自己也可以很容易地测试它,但我仍然很好奇发生这种情况时的具体过程是什么,以及它是否被认为是好的(如果它有效的话)还是不好的做法.
我之所以问,是因为我目前正在从事一个项目,其中我有两个抽象基类,每个基类都有几个子类。我试图找出处理必须从一个子类更改为另一个子类的好/坏方法,同时仍然使用使用抽象基类时添加的便利多态性。
编辑:我修复了 main 和 class 声明,对此感到抱歉。