Java Lesson 14: Abstract methods
From Erlands Wiki
The main class now looks as follows:
public class MyClass { public static void main(String[] args) { Argument argument1 = ArgumentHelper.getArgumentAsInt(0,args); Argument argument2 = ArgumentHelper.getArgumentAsString(1,args); printStuff(argument1); printStuff(argument2); } public static void printStuff(Argument data) { System.out.println("You specified: "+data.getValue()); } }
The helper class still looks as follows:
public class ArgumentHelper { public static Argument getArgumentAsInt(int argumentNumber, String[] args) { int argument = Integer.valueOf(args[argumentNumber]); return new IntArgument(argument); } public static Argument getArgumentAsString(int argumentNumber, String[] args) { String argument = args[argumentNumber]; StringArgument strArgument = new StringArgument(); strArgument.setString(argument); return strArgument; } }
The Argument class looks as follows:
public class Argument { }
The IntArgument class looks as follows:
public class IntArgument extends Argument { private int intArgument; public IntArgument(int intArgument) { this.intArgument = intArgument; } public int getInt() { return intArgument; } public String getValue() { return String.valueOf(intArgument); } }
And the StringArgument class:
public class StringArgument extends Argument { private String strArgument; public void setString(String arg) { this.strArgument = arg; } public String getString() { return strArgument; } public String getValue() { return String.valueOf(strArgument); } }
The program is as usual executed as:
java MyClass 5 Hello
Your work is to modify the Argument class so the program compiles and gives the following output:
You specified: 5 You specified: Hello
