Java中什么情况下静态内部类对象存在,外部类对象也存在

如题所述

public static void main(String[] args) {
A a=new A();
//我new了个外部对象A 由引用a指向
A.B ab=new A.B();
//我new了个内部对象B 由引用ab指向
a=ab.getinner();
//我让内部类继承外部类A 然后将a与 A的连接断开 ,连上新建的B对象
System.out.println( a instanceof A);
//我判断a是不是A的一个实例,答案是true
System.out.println( ab instanceof A);
//我判断ab是不是A的一个实例,答案是true
System.out.println( a instanceof B);
//我判断a是不是B的一个实例,答案是true
System.out.println( ab instanceof B);
//我判断ab是不是B的一个实例,答案是true
/**
* a和ab是不是既是A又是B的实例呢,此时Java这种
* 情况下静态内部类对象存在,外部类对象也存在
*/
//静态内部类是由外部对象"的"内部类创建的
//非静态由外部对象"的"内部类"的"对象创建的
}
static class B extends A{
B getinner(){
return new B();
}
B getinnero(){
return new B();
}

}
温馨提示:答案为网友推荐,仅供参考
相似回答