Stream geschlossen und nicht wieder geöffnet - Java

Ich habe eine leichte Aufgabe zu erledigen, aber ich habe ein kleines Problem mit dem Schließen des Eingabestreams gefunden. Einfach ausgedrückt muss ich in Java eine Kontaktlisten-Anwendung erstellen, um den Polymorphismus richtig zu verwenden. Ich habe also eine Klasse Kontakt und eine Unterklasse Privat (Kontakt). In beiden Klassen gibt es eine Änderungsmethode, um den Wert der Variablen zu ändern.

public void modify() throws IOException {
    System.out.println("Previously name: " + name);
    System.out.println("Insert new name");
    try(InputStreamReader ir = new InputStreamReader(System.in);    
    BufferedReader in = new BufferedReader(ir) ) {  
        name= in.readLine();
        System.out.println("You've changed the name to: "+ name);                       
    System.out.println("Previously surname: " + surname);
    System.out.println("Insert new surname");
        surname= in.readLine();
        System.out.println("You've changed the surname to: "+ surname);                         
    System.out.println("Previously e-mail: " + email);
    System.out.println("Insert new e-mail");
        email = in.readLine();
        System.out.println("You've changed the e-mail to: "+ email);    }                   
}

Dies ist die Contact-Methode, die kein Problem verursacht

@Override 
public void modify() throws IOException {
    super.modifica();
    System.out.println("Numero di cellulare precedente: " + cell);
    System.out.println("Inserire nuovo numero");
    try (InputStreamReader ir = new InputStreamReader(System.in);   
    BufferedReader in = new BufferedReader(ir)) {
        cell = in.readLine();
        System.out.println("Hai cambiato il numero in: "+ cell);                        
    System.out.println("Contatto skype precedente: " + skype);
    System.out.println("Inserire nuovo contatto");
        skype = in.readLine();
        System.out.println("Hai cambiato il contatto in: "+ skype);                         
}   
}

Instead, dies ist die Außerkraftsetzung der Methode in Private. In der Hauptsache erstelle ich ein privates Objekt und rufe die Änderungsmethode auf. Ich kann ohne Probleme Vor- und Nachnamen sowie E-Mails einfügen, dann löst die Methode eine E / A-Ausnahme aus, weil der Stream geschlossen ist. Ich kann nicht verstehen, warum ich so ein Problem habe. Ich denke, dass der Stream durch einen Versuch mit Ressourcen im ersten Code geschlossen wird, aber dann durch einen anderen Versuch mit Ressourcen im zweiten Code geöffnet wird. Wahrscheinlich stimmt etwas in meiner Idee nicht.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage