(see http://java.sun.com/docs/books/jvms/second_edition/jvms-clarify.html)
(see http://java.sun.com/docs/books/jvms/second_edition/jvms-clarify.html)
If the ACC_INTERFACE
flag is set, the ACC_ABSTRACT
flag must also
be set (ch. 2.13.1).
A class file cannot have both its ACC_FINAL
and ACC_ABSTRACT
flags
set (ch. 2.8.2).
A field may have at most one of its ACC_PRIVATE
, ACC_PROTECTED
,
ACC_PUBLIC
flags set (ch. 2.7.4).
A field may not have both its ACC_FINAL
and ACC_VOLATILE
flags set
(ch. 2.9.1).
If a method has its ACC_ABSTRACT
flag set it must not have any of its
ACC_FINAL
, ACC_NATIVE
, ACC_PRIVATE
, ACC_STATIC
, ACC_STRICT
,
or ACC_SYNCHRONIZED
flags set (ch. 2.13.3.2).
All interface methods must have their ACC_ABSTRACT
and
ACC_PUBLIC
flags set.
Note for future reference: see this thread on ACC_SUPER and how its enforcement differs on the android vm. https://groups.google.com/forum/?hl=en#!topic/jvm-languages/jVhzvq8-ZIk