public static int setAbstract ( int modifier , boolean b ) { if ( b ) { return ( modifier | ABSTRACT ) & ( ~ FINAL & ~ VOLATILE & ~ TRANSIENT & ~ NATIVE & ~ SYNCHRONIZED & ~ STRICT ) ; } else { return modifier & ~ ABSTRACT & ~ INTERFACE ; } }
When set abstract the modifier is cleared from being final volatile transient native synchronized and strictfp . When cleared from being abstract the modifier is also cleared from being an interface .