Java Interface Rules
Join the DZone community and get the full member experience.
Join For FreeLet’s start with a short Java question. Below you can see the interface ‘Test’. Which lines in that interface will be rejected by the compiler?
public interface Test{
//1
public static final int x1 = 3;
//2
public static int x2 = 3;
//3
static int x3 = 3;
//4
int x4 = 3;
//5
public int f5();
//6
int f6();
//7
public static int f7();
//8
private void f8();
//9
public final void f9();
//10
private static final int x5 = 3;
}
The answer is:
lines: 7,8,9,10
I am sure that even many of the experienced java developers will not have a 100% success answering this question because it can be confusing.
1, 2, 3 and 4 are actually all the same – only constants are allowed
and by default they are. For that reason, 10 is not allowed.
5 and 6 are the same – only public and protected methods are allowed. By default they are public.
In short these are the rules for interfaces:
Member variables
- Can be only public and are by default.
- By default are static and always static
- By default are final and always final
- Can be only public and are by default.
- Can not be static
- Can not be Final
Opinions expressed by DZone contributors are their own.
Trending
-
Competing Consumers With Spring Boot and Hazelcast
-
RBAC With API Gateway and Open Policy Agent (OPA)
-
File Upload Security and Malware Protection
-
Getting Started With the YugabyteDB Managed REST API
Comments