Method not returning to user (inheritance)

I am trying to read values ​​in HashMap

from a driver program into a separate program abstract

. After that, I want the content to be printed for the user. However, when I call the method, nothing happens

Gamedriver

import java.io.*;
import java.util.*;
import java.awt.*;

public class GameDriver {

    public static void main(String[] args) throws FileNotFoundException {

        String s;
        File f = new File (args[0]);
        Scanner input = new Scanner(f);
        while (input.hasNext()) {
            s = input.next();
            if (s.equalsIgnoreCase("h")) { 
                Hero c1 = new Cop();
                System.out.println(c1); 
            }

            if (s.equalsIgnoreCase("r")) { 
                Hero c2 = new Cop();
                String cn = input.next();
                int pts = input.nextInt();
                c2.newMap.put(cn, pts);
                c2.rescue();
                System.out.println(c2);
            }

        }

    }
}

      

Hero.java

import java.util.*;
import java.io.*;
import java.awt.*;

public abstract class Hero extends Character
{
   private String heroname1;
   public Hero() {
          heroname1 = "Rick Grimes"; //the default player name
   }
   HashMap<String, Integer> newMap = new HashMap<String, Integer>();

   public Hero(String newhero) {
          if (newhero.length() > 0) {
               heroname1 = newhero;
          } else { heroname1 = "Rick Grimes"; } //defaulted as protagonist
   }

   public String getHeroName() {
          return heroname1; //return the name
   }

   public String rescue() { //class to rescue people or things
          return " rescued " + newMap + "pts!";
   }

   public String toString() { //print
          return heroname1 + rescue();

   }
}

      

Driver reads in .txt file here is an example

.TXT

c h Rick Grimes//create hero
r Carl 100 //rescue name and point value

      

and finally my output and the desired output

Current output

Rick Grimes
Rick Grimes

      

Desired result

Rick Grimes
Rick Grimes rescued Carl 100pts!

      

Thanks to everyone who helps! Ask if you need any clarification.

EDIT Cop.java

import java.io.*;
import java.util.*;
import java.awt.*;

public class Cop extends Hero {
   public Cop() {
         super();
   }
   public void hero1(String newhero) {
          newhero = getHeroName(); //get name from the Hero class
   }
   public void lieDetect() { //unique ability for cops
          System.out.println("Cops can tell the good from the bad");
   }
}

      

+3


source to share


1 answer


In GameDriver:

if (s.equalsIgnoreCase("h")) { 
    Hero c1 = new Cop();
    System.out.println(c1.getHeroName()); 
}

      

Rescue method in Hero class:



public String rescue() { //class to rescue people or things
       String toReturn = "";
       for(String _key : newMap.keySet()) {
           toReturn += " rescued " + _key + " " + newMap.get(_key) + "pts!";
       }
       return toReturn;
   }

      

And I am getting the desired result.

+1


source







All Articles