Java 让主类不作为超类有什么不对?

Java 让主类不作为超类有什么不对?,java,Java,在这里,我有一个名为“Staff”的超类。我的主要方法是在一个名为“Program_2A”的单独类中。给出的文件名是Program_2A.java。Eclipse在程序的第二行显示了一个错误 链接本地重命名的所有引用不会更改其他文件中的引用 我不明白用主类而不是超类是怎么回事 代码如下: import java.util.*; public class Staff { private int Staff_ID; private String Name; private

在这里,我有一个名为“Staff”的超类。我的主要方法是在一个名为“Program_2A”的单独类中。给出的文件名是Program_2A.java。Eclipse在程序的第二行显示了一个错误

链接本地重命名的所有引用不会更改其他文件中的引用

我不明白用主类而不是超类是怎么回事

代码如下:

import java.util.*;

public class Staff {
    private int Staff_ID;
    private String Name;
    private int Phone;
    private int Salary;

    public Staff(int staff_id, String name, int phone, int salary)
    {
        Staff_ID = staff_id;
        Name = name;
        Phone = phone;
        Salary = salary;
    }

    public void display()
    {
        System.out.println("\t" + Staff_ID + "\t" + Name + "\t" + Phone + "\t" + Salary);
    }
}
class Teaching extends Staff
{
    private String Domain;
    private int Publication;

    public Teaching(int staff_id, String name, int phone, int salary, String domain, int publication) {
        super(staff_id,name,phone,salary);
        Domain = domain;
        Publication = publication;
    }
    public void display() {
        super.display();
        System.out.println("\t" + Domain + "\t" + Publication);
    }
}
class Technical extends Staff
{
    private String Skills;
    public Technical(int staff_id, String name, int phone, int salary, String skills) {
        super(staff_id,name,phone,salary);
        Skills = skills;
    }
    public void display() {
        super.display();
        System.out.println("\t" + Skills);
    }
}
class Contract extends Staff
{
    private int Contract;
    public Contract(int staff_id, String name, int phone, int salary, int contract) {
        super(staff_id,name,phone,salary);
        Contract = contract;
}
    public void display() {
        super.display();
        System.out.println("\t" + Contract);
    }
}

class Program_2A {
    public static void main(String[] args) {
        Staff St[] = new Staff[3];
        St[0] = new Teaching(1, "ABC", 1234, 10000, "CSE", 3);
        St[1] = new Technical(2, "DEF", 5678, 200000, "C++");
        St[2] = new Contract(3, "GHI", 9012, 50000, 3);

        System.out.println("STAFF ID \t NAME \t PHONE \t SALARY \t DOMAIN \t PUBLICATIONS \t SKILLS \t PERIOD");
        for(int i=0;i<3;i++) {
            St[i].display();
            System.out.println();
        }
    }

}

在Java中,一个文件只能包含一个公共类


因此,请将class Program_2A更改为public class Program_2A,并在Staff class之前删除public关键字。

使用main方法的类不应该是public吗?@Gendarme它不需要公开您引用的消息看起来/听起来不像是错误,更像是重构步骤中的信息。我尝试过了!还是一样的错误,而且和你问题的标题没有任何关系。