私は別のクラスの別のオブジェクトにオブジェクトを割り当てた場合はどうなりますか?

イシャンTrivediの:

ここに私のコードは次のとおりです。

class A
{
    int x=2,y=3;
}
class B extends A
{
    //Blank 
}
public class Test
{
    public static void main(String args[])
    {
        A a=new A();
        B b;
        b=a;
        System.out.println(b.x);
        System.out.println(b.y);
    }
}

私はこのコードを実行しようとしているときは、:エラーが表示され、「互換性のない型は、AがBに変換することができません」。

私は「」「B」にキャストを入力しようとしているときにも、ClassCastExceptionが発生しています。

Javaで別のクラスの別のオブジェクトにオブジェクトを代入する方法はありますか?

ゲームMamani:

厳密に言えば、「基底クラス」の変数は、「サブクラス」ではなく、他の方法で回避を割り当てることができます。つまり、あなたは "A =新しいB()" ではなく "BのB =新しいA()" を持つことができます。

直感的な理由もあります。基底クラスは、サブクラスは、より具体的で多くの性質/機能例えば「先生」(=人を提供することを約束している一方で、「人」と言って、通常は基本的なものであるプラスティーチに追加機能を)。あなたは魔法先生自身を呼び出すために普通の人を強制することはできません、それはちょうどあなたが任意の教育機能をアクティブにしよう分を失敗します...

私たちは、特定のものがベースよりも少ない機能を持っている機会についての哲学的議論を開始することができます(例えば、「IncompetentPersonは人を拡張」)が、Javaの継承は、一般的にそれをカバーすることを目指していません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=109244&siteId=1