java - 如何从静态 main() 方法调用内部类的方法

标签 java polymorphism inner-classes

尝试在父类中创建 1 个接口(interface)和 2 个具体类。这将使封闭类成为内部类。

public class Test2 {

       interface A{
             public void call();
       }

       class B implements A{
             public void call(){
                   System.out.println("inside class B");
             }
       }

       class C extends B implements A{
             public void call(){
                   super.call();
             }
       }


       public static void main(String[] args) {
              A a = new C();
              a.call();

       }
}

现在我不太确定如何在静态 main() 方法中创建类 C 的对象并调用类 C 的 call() 方法。 现在我遇到了问题:A a = new C();

最佳答案

这里的内部类不是静态的,所以需要创建一个外部类的实例,然后调用new,

A a = new Test2().new C();

但在这种情况下,你可以将内部类设为静态,

static class C extends B implements A

然后就可以使用了,

A a = new C()

关于java - 如何从静态 main() 方法调用内部类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16954599/

相关文章:

java - 加载了错误的 Java 资源包

rust - 盒装特征创建背后的机制如何运作?

c++ - 我可以用 C++ 为模板类编写接口(interface)吗

java - 静态嵌套类不初始化外部类

java - Java 前向引用在不同情况下的行为是否不同?

c# - C#封装内部类并访问外部

java - 如何访问不同类中的数组?

java - SDN : How to map a collection of nodes to a @NodeEntity class member?

c# - Java 和 C# 处理方法绑定(bind)方式的显着差异背后的解释是什么?

SQL、MVC、 Entity Framework