私はJavaが初めてで、キャストに問題があります。Parent というクラスと Children というクラスがあり、Children クラスは Parent のサブクラスです。
public class Parent
{
int age;
String occupation;
public void print()
{
System.out.println("My age is:"+ age + "and i am a:" + occupation);
}
}
public class Children extends Parent
{
int height;
public static void main(String args[])
{
Children c = new Children();
Parent p = new Parent();
p=c;
c=(Children) p;
/**Here***/
}
}
私の問題は、キャスト後に p.XXX を追加すると、インスタンス p にアクセスできる年齢と職業しか表示されないことです。c.xxx を実行すると、すべての年齢、職業、身長にアクセスできることがわかります。p=c を実行すると、p は子クラスのインスタンスと見なされるようになりましたね。はいの場合、高さの整数にアクセスできないのはなぜですか? そして、c=(Children)p を実行すると、Parent クラスのインスタンスが Children クラスのインスタンスに割り当てられます。Parent インスタンスにはオプションがないため、親から子へのキャストを行う理由は正しいですか?