内部クラス/特性を外部クラス内または外部クラスから派生したクラス内に拡張できます。次のように、外部クラスの特定のインスタンスの内部クラスを拡張できます。
class Outer
{
class Inner{}
}
class OtherCl(val outer1: Outer)
{
class InnA extends outer1.Inner{}
}
注:これでもうまくコンパイルされ、非常に興味深い可能性が生まれます。
trait OuterA
{ trait InnerA }
trait OuterB
{ trait InnerB }
class class2(val outerA1: OuterA, val outerB1: OuterB)
{ class Inner2 extends outerA1.InnerA with outerB1.InnerB }
しかし、これはコンパイルされません:
class OtherCl extends Outer#Inner
私が見る限り、typeパラメーターが外部クラスのインスタンスであるパラメーター化されたクラスを拡張しようとしているので、
class OtherCl[T where T is instance of Outer] extends T.Inner
それで、とにかく、外側の特性/クラスを参照せずに、外側の特性/クラスの内側にある内側のクラス/特性を拡張するのですか?
外部クラスのインスタンスがその型を宣言するだけで、派生した内部クラスをインスタンス化することは考えていません。