• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

from mock exam

 
prema Arvind
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
An interface can never be private or protected
True or False
pls explain....
 
Corey McGlone
Ranch Hand
Posts: 3271
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
From the JLS, §9.1 Interface Declarations:

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 ]
 
Roger Chung-Wee
Ranch Hand
Posts: 1683
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
prema Arvind
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you..
 
Martin Smith
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Roger,
Would not an interface always be abstract by definition - as all the methods are abstract?
 
Roger Chung-Wee
Ranch Hand
Posts: 1683
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Indeed, every interface (top-level or member) is implicitly abstract, but the JLS rather sternly advises against using this obsolete keyword.
 
Corey McGlone
Ranch Hand
Posts: 3271
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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, §9.1.1.1 abstract Interfaces:

Every interface is implicitly abstract. This modifier is obsolete and should not be used in new programs.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic