An interface declaration may include interface modifiers: InterfaceModifiers: InterfaceModifier InterfaceModifiers InterfaceModifier InterfaceModifier: one of public protected private abstract static strictfp The access modifier public is discussed in �6.6. Not all modifiers are applicable to all kinds of interface declarations. The access modifiers protected and private pertain only to member interfaces within a directly enclosing class declaration (�8.5) and are discussed in �8.5.1. The access modifier static pertains only to member interfaces (�8.5, �9.5). A compile-time error occurs if the same modifier appears more than once in an interface declaration.
So, I'd go with false. [ April 07, 2003: Message edited by: Corey McGlone ]
An interface is not part of the class hierarchy - unrelated classes can implement the same interface. Top-level interfaces have default package access (like top-level classes). Only public and strictfp modifiers are allowed for top-level interfaces (abstract is also allowed but discouraged by the JLS). However, a member interface may be protected or private, but only if declared in a top-level class.
SCJP 1.4, SCWCD 1.3, SCBCD 1.3
Joined: Apr 04, 2003
Joined: Apr 05, 2003
Roger, Would not an interface always be abstract by definition - as all the methods are abstract?
Joined: Sep 29, 2002
Indeed, every interface (top-level or member) is implicitly abstract, but the JLS rather sternly advises against using this obsolete keyword.
Joined: Dec 20, 2001
Originally posted by Roger Chung-Wee: Indeed, every interface (top-level or member) is implicitly abstract, but the JLS rather sternly advises against using this obsolete keyword.
The keyword abstract is not obsolete - it is only obsolete with respect to being a modifier for an Interface. Here is the direct quote from the JLS, §22.214.171.124 abstract Interfaces:
Every interface is implicitly abstract. This modifier is obsolete and should not be used in new programs.