Maybe I'm not seeing it, but I can't think of a problem this causes because a static class that extends an abstract class can't be instantiated, but maybe there is a design pattern that I should use instead.
Here is an example of what I'm talking about:
public class PetTrainer
{
public PetTrainer(...)
{...}
public static class LeashInstruction extends LeashInstructionAbstract
{
//No Code
}
}
Within the same package:
abstract class LeashInstructionAbstract
{
public static void giveTreat(...)
{...}
public static...
//imagine more
}