私はJavaで内部クラスと外部クラスを学習しています。内クラスと外クラスが何で、なぜそれらが使われているのか分かります。私はこのトピックに関する次の質問に出くわし、答えを見つけることができませんでした。内部クラスを継承するサブクラスのコンストラクタを定義する方法は?
は、次のコードが指定されていると仮定します
class outer{
class inner{
}
}
class SubClass extends outer.inner{
}
質問:はどのように最小限のサブクラスのコンストラクタを定義する必要がありますか?なぜ?
Option 1-
Subclass() {
//reason: bacause the default constructor must always be provided
}
Option 2-
Subclass (Outer outer) {
//reason : because creating an instance of **Subclass** requires an instance
//of outer, which the **Subclass** instance will be bound to
}
Option 3-
Subclass (Outer outer) {
outer.super();
//reason : because creating an instance of **Subclass** requires an explicit
//call to the **Outer's** constructor, in order to have an enclosing instance
//of **Outer** in scope.
}
Option 4-
Subclass (Outer.inner inner) {
//reason : bacause an instance of **inner** is necessary so that there is a
//source to copy the derived properties from
}
PS。これは多項選択問題です。唯一の1の回答が
期待されている私は、Javaに新しいですし、ここで
おかげ
、これは[受信パラメータの場合であること - JLS位8.4.1](http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.4.1)を参照してください。 – EJP