2017-03-19 4 views
-1

Javaのクラス階層では、このような方法でオブジェクトを初期化できますか?サブクラス型変数はスーパークラスオブジェクトを参照できますか?

subclass object = new superclass(); 

これは、サブクラスとスーパークラスの両方が適切なコンストラクタを持っていることを前提としてコンパイルすることができ、などが可能オブジェクト構築のこの種のですか?

+0

いいえ......... –

答えて

0

いいえ、まったく逆です。 クラスのオブジェクトを持つときは、同じクラスまたは親クラスの参照で参照できますが、逆の参照はできません。これはたぶんJavaには関係しないでしょう。 それ以外の場合は意味がありません。あなたは

SubClass object = new SuperClass(); 

、その後

object.method2(); 

を行うと参照がタイプサブクラスのですが、オブジェクトの型がスーパークラスであるため、その後、理論的には、コンパイルする必要がありますが

class SuperClass { 
    public void method1() {}; 
} 

class SubClass { 
    public void method2() {}; 
} 

を持っていると仮定そのような方法はありません。

関連する問題