对不起,这个头衔不好,但我想不出更好的头衔。
我有一个A类和一个B类,这是A的子类,如下所示:
(实际上是否有正确的名称?是否不为继承保留“子类”?)
class A {
int i = 0;
class B {
int j = 1;
}
}
class Test {
public static void main() {
A a = new A();
B b = a.new B();
A c = ??? b ??? // get "a" back
}
}
从B可以访问A的每个属性,因此ai和bi都返回0。现在,我想知道是否有可能从b中检索类型A的原始对象,因为b包含a包含的所有内容?简单的转换显然不能解决问题。
第二个:
class A {
void print() {
System.out.println("This is class A.");
}
class B {
void print() {
// <--- How to access print() of class A (like this.A.print() or smth)?
System.out.println("This is class B.");
}
}
}
或者,您也可以在这个主题上为我提供一些很好的资源,因为到目前为止我一直都太愚蠢而找不到一个好的资源。
提前致谢。:)
似乎没有办法从外部访问外部类。但是您可以这样做:
class A {
int i = 0;
class B {
final A outer = A.this;
int j = 1;
}
}
class Test {
public static void main() {
A a = new A();
A.B b = a.new B();
A c = b.outer // get "a" back
}
}
ClassName.this
将是与内部类的实例相关联的外部类的实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句