EDIT: I understand the concept behind what is going on... if the method were
Monster.attack( SwordSlash, Monster )
then this would work fine. The idea I'm missing is why even bother using an Attack parameter if I can't use its subclasses methods.
There isn't much to the stack trace...
It's a runtime error( sorry, I should have mentioned that. In my head it was a compiler error ).
The runtime error occurs when the program comes across nonstatic Monster.attack( Attack, Monster ).
The Battle class essentially accepts two Monsters and loops them through a series of attacks until one's health is 0.
The battle loop is currently in the constructor of the Battle class... bad, I know.
Exception in thread "main" java.lang.AbstractMethodError: Attack.runEffect(LMonster;)V
at Monster.attack(Monster.java:194)
at Battle.<init>(Battle.java:62)
at Battle.main(Battle.java:127)