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 は正確にどうなりますか? この例を入力しているときに、おそらく自分で簡単にテストできることに気付きましたが、これが発生したときのプロセスが正確に何であるか、およびそれが良い(機能する場合)または悪い習慣と見なされるかどうかについてはまだ興味があります.
現在、2 つの抽象基本クラスと、それぞれにいくつかのサブクラスがあるプロジェクトに取り組んでいるため、質問しています。抽象基本クラスを使用するときに追加される便利なポリモーフィズムを使用しながら、あるサブクラスから別のサブクラスに変更する必要があることを処理するための良い/悪い方法を見つけようとしています。
編集: メインとクラスの宣言を修正しました。申し訳ありません。