one 定义静态+继承
class D{
public static class BA{//内部类
public void print(){
System.out.println("Hello World !");
}
}
}
public class C extend D.BA{
public C()
{
super.print();
}
public static void main(String[] args) {
new C();
}
}
two 外部类辅助(调用外部类private定义,这是因为当我们在创建某个外围类的内部类对象时,此时内部类对象必定会捕获一个指向那个外围类对象的引用,只要我们在访问外围类的成员时,就会用这个引用来选择外围类的成员。)
class D{//内部抽象类子类
private int num=2;
public class BA{//内部抽象类子类
public void print(){//覆写抽象类的方法
System.out.println("Hello World !");
System.out.println(num);
}
}
}
public class C{
public static void main(String[] args) {
D name1 = new D();
D.BA name2 = name1.new BA();
name2.print();
}
}
three 需要我们注意的是内部类隐式的持有外部类的引用,所以,我们需要在C的构造方法中显式的调用D的构造方法来给BA一个name1的引用
class D{
class BA{
void print(){
System.out.println("Hello World !");
}
}
}
public class C extends D.BA{
public C(D name1){
name1.super();
}
public static void main(String[] args){
D name1 = new D();
C name2 = new C(name1);
name2.print();
}
}
欢迎补充和指出错误

被折叠的 条评论
为什么被折叠?



