java - 使用内部类编译时出错

标签 java oop

我有以下代码:

public class Person{
    class Student extends Person{}
    public static void main(String[] ){
        Person p = new Student();
        //error compiling here, can't access non-static member from a static context
    }  
}

请帮我解释一下,谢谢您的帮助

最佳答案

class Student extends Person{}

声明时没有static,因此我们必须首先有一个Person实例。

当我们在 main 中时,我们处于静态上下文中并且没有 Person 的实例。

您应该将 Student 类移动到名为 Student.java文件中,并确保在扩展它时确实能执行某些操作。

然后您可以尝试获取它的实例,而不必担心内部类型和嵌套类。

当一个类需要要求它是另一个类的实例的子级时,可以使用嵌套类。请参阅this tutorial .

否则(在大多数情况下),类总是进入它们自己的文件中。

关于java - 使用内部类编译时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538862/

相关文章:

JAVA OOP继承树

java - 从 Java 运行导入数据库 DOS 命令

java - java中的字符串格式化函数

Java Lejos 自主 NXJ 机器人线程造成麻烦

java - java中关联是如何实现的?

java - 待遇到类内场。通过 getter 还是显式?

Java嵌套for循环

Java,将Class的实例转换为HashMap

oop - 递归调用一个类(实现链表)

c++ - 不同的对象作为同一个函数的参数