该程序要求用户输入两次name和employeeId,而只需输入一次。

我正在尝试使用name和employeeId实例变量来打印一个句子,这些实例变量被继承到名为Nursing的类。该程序运行良好。但是,问题在于它要求用户输入两次name和employeeId。

AbstractTest.java-

import java.util.*;

class AbstractTest {
    String name;
    int employmentId;

    AbstractTest (){
        //initialize name and employmentId instance variables
        System.out.println("enter name");
        Scanner readString = new Scanner(System.in);
        this.name = readString.nextLine();

        System.out.println("enter ID");
        Scanner readInt = new Scanner(System.in);
        this.employmentId = readInt.nextInt();
    }
    // constructor ends
}


Nursing.java-

class Nursing extends AbstractTest{
    void display() {
        System.out.println("the employment detail: " + "Name: " +
        name + "ID: " + employmentId);
    }
}


Main.java-

class Main {
    public static void main(String[] args) {
        AbstractTest abstractTest = new AbstractTest();
        Nursing nursing = new Nursing();
        nursing.display();
    }
}


//它运行良好,但是以某种方式重复两次以输入名称和ID。它应该只需要一次(以下是MS DOS的结果)。

输入名字
蝙蝠侠

输入ID
1234

输入名字
超人

输入ID
5678

就业细节:姓名:超人ID:5678

最佳答案

删除线

AbstractTest abstractTest = new AbstractTest();


尽管您不使用该对象,但是正在创建该对象,并且Scanner请求2个输入。

Nursing nursing = new Nursing();


足够:它将调用其父级的构造函数,即AbstractTest之一。

09-30 18:47
查看更多