内部类也可以是子类

时间:2015-09-02 02:11:21

标签: java

内部类也可以是子类。在这组java planguage中还有一件事是它不允许我创建子类的实例,即使我已经为内部类创建了一个封装类的实例。

public class Main {

Main OpTypes[] = new Main[3];

public static void main(String[] args) { 
    Main c = new Main();
    c.OpTypes[0] = new Division(6,3);
    Jool x = new Jool();
}

public class Jool { 
    public Jool() { 

    }
}

}

1 个答案:

答案 0 :(得分:0)

如果你试试,你会发现内部类可以扩展一个类。

此外,由于内部类是而不是 static,因此在构造外部类时需要外部类的实例。在下面的代码中,您将看到两种方法。

方法test显示了最常见的方法,即从外部类的实例(非静态)方法执行此操作,在这种情况下,外部类是隐式的。

方法main显示了如何在外部类的实例方法之外执行它,在这种情况下,您必须在new运算符之前提供外部类实例。

class MyBaseClass {
}

class Main {

    public static void main(String[] args) { 
        Main c = new Main();
        Jool x = c.new Jool(); // "c" explicitly used as outer class instance
    }

    public void test() { 
        Jool x = new Jool(); // "this" implicitly used as outer class instance
    }

    public class Jool extends MyBaseClass { // Inner class extends unrelated class
    }

}