@Target(value=METHOD) public @interface CastReturnValue
このアノテーションがつけられたメソッドは、オーバーライドした際に 戻り値の型を変更する必要があります.