INTERFACES
Initialization of Fields in Interfaces
9.3.1
Every field declaration in the body of an interface is implicitly
public
,
static
, and
final
. It is permitted, but strongly discouraged as a matter of style,
to redundantly specify any or all of these modifiers for such fields.
A constant declaration in an interface must not include any of the modifiers
synchronized
,
transient
, or
volatile
, or a compile time error occurs.
It is possible for an interface to inherit more than one field with the same
name ( 8.3.3.3). Such a situation does not in itself cause a compile time error.
However, any attempt within the body of the interface to refer to either field by its
simple name will result in a compile time error, because such a reference is
ambiguous.
There might be several paths by which the same field declaration might be
inherited from an interface. In such a situation, the field is considered to be inher 
ited only once, and it may be referred to by its simple name without ambiguity.
9.3.1   Initialization of Fields in Interfaces
Every field in the body of an interface must have an initialization expression,
which need not be a constant expression. The variable initializer is evaluated and
the assignment performed exactly once, when the interface is initialized ( 12.4).
A compile time error occurs if an initialization expression for an interface
field contains a reference by simple name to the same field or to another field
whose declaration occurs textually later in the same interface. Thus:
interface Test {
float f = j;
int j = 1;
int k = k+1;
}
causes two compile time errors, because
j
 is referred to in the initialization of
f
before
j
 is declared and because the initialization of
k
 refers to
k
 itself.
(One subtlety here is that, at run time,
fields
 that are initialized with com 
pile time constant values are initialized first. This applies also to
static final
fields in classes ( 8.3.2.1). This means, in particular, that these fields will never be
observed to have their default initial values ( 4.5.4), even by devious programs.
See  12.4.2 and  13.4.8 for more discussion.)
If the keyword
this
 ( 15.7.2) or the keyword
super
 (15.10.2, 15.11) occurs
in an initialization expression for a field of an interface, then a compile time error
occurs.
187






footer




 

 

 

 

 Home | About Us | Network | Services | Support | FAQ | Control Panel | Order Online | Sitemap | Contact

java hosting

 

Our partners: PHP: Hypertext Preprocessor Best Web Hosting Java Web Hosting Inexpensive Web Hosting  Jsp Web Hosting

Cheapest Web Hosting Jsp Hosting Cheap Hosting

Visionwebhosting.net Business web hosting division of Web Design Plus. All rights reserved