Java 子类无法访问父类的ArrayList中存在的内容 抽象类工资单 { List nm=新的ArrayList(); 列表id=新的ArrayList(); List dob=new ArrayList(); } 类Employee extends Paympent实现Paympent { BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in)); int n; 字符串ename,eid,birth,pr_id; 公共无效添加员工() { 尝试 { System.out.print(“\n输入数字\t:”); n=Integer.parseInt(br.readLine()); 对于(int i=0;i
我需要查看您的main方法。当我运行main时:Java 子类无法访问父类的ArrayList中存在的内容 抽象类工资单 { List nm=新的ArrayList(); 列表id=新的ArrayList(); List dob=new ArrayList(); } 类Employee extends Paympent实现Paympent { BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in)); int n; 字符串ename,eid,birth,pr_id; 公共无效添加员工() { 尝试 { System.out.print(“\n输入数字\t:”); n=Integer.parseInt(br.readLine()); 对于(int i=0;i,java,arraylist,Java,Arraylist,我需要查看您的main方法。当我运行main时: abstract class PayRoll { List<String> nm=new ArrayList<String>(); List<String> id=new ArrayList<String>(); List<String> dob=new ArrayList<String>(); } class Employee extends P
abstract class PayRoll
{
List<String> nm=new ArrayList<String>();
List<String> id=new ArrayList<String>();
List<String> dob=new ArrayList<String>();
}
class Employee extends PayRoll implements PayEmpInt
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n;
String ename,eid,birth,pr_id;
public void addEmployee()
{
try
{
System.out.print("\nEnter the number\t :");
n=Integer.parseInt(br.readLine());
for(int i=0;i<n;i++)
{
System.out.print("\nEnter Employee name\t :");
ename=br.readLine();
System.out.print("\nEnter the Employee ID\t :");
eid=br.readLine();
System.out.print("\nEnter the D.O.B(mm-dd-yyy)\t :");
birth=br.readLine();
nm.add(ename);
id.add(eid);
dob.add(birth);
}
}
catch(IOException e)
{
System.out.print("\nError while handling the Input. "+e);
}
}
class Project extends Employee
{
public void display()
{
System.out.print("\nName\t\tID\t\tDOB");
for(int i=0;i<id.size();i++)
System.out.println(nm.get(i)+"\t"+id.get(i)+"\n"+dob.get(i));
}
}
import java.io.*;
class PayMain
{
public static void main(String args[])throws IOException
{
int ch;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
System.out.println("\nOptions:\n\t1. Employee DB\n\t2. Projects\n\t3. Exit");
ch=Integer.parseInt(br.readLine());
switch(ch)
{
case 1:
Employee e=new Employee();
e.addEmployee();
System.out.print("\nEMPLOYEE LIST");
e.employeeDetails();
break;
case 2:
Project p=new Project();
p.display();
break;
case 3:
System.exit(0);
}
}
}
我得到以下输出(使用示例输入):
输入号码:2
输入员工姓名:bob
输入员工ID:123
输入D.O.B(年月日):01-01-2222
输入员工姓名:alice
输入员工ID:234
输入D.O.B(年月日):04-44-4444
姓名ID:123
01-01-2222
艾丽丝234
04-44-4444
您需要确保在同一对象上调用方法
此外,您可能希望将addEmployee方法更新为addEmployees,因为它会提示您输入要添加的数字。抽象类Payroll的字段没有修饰符,这意味着它们只能由同一包中的类访问。它们应该受到
保护。或者如果合适,提供公共getter吃了。(在这里我说不)
我同意其他人的观点:建筑感觉怪异。请告诉我主要的类。我怀疑你可能有多个例证。奇怪的设计。为什么<代码>项目>代码>一个代码>雇员< /代码>?强烈建议重新思考你的结构。我同意@ QQILHQ,这是一个奇怪的架构。我认为项目不应该是E。xtend什么都可以。另外,员工也不是真正的工资单。
public static void main(String[] args) {
Project aProject = new Project();
aProject.addEmployee();
aProject.display();
}