@Target(value=METHOD) public @interface VirtualMethod
このアノテーションがつけられたメソッドは、 抽象メソッドでなかったとしても、サブクラスで必ずオーバーライドする必要があります.