Suppose I have the following code ...
interface A{ void a(); } interface B extends A{ void b(); } class ImplementOne implements B{ public void a(){}; public void b(){}; } class ImplementTwo implements B, A{ public void a(){}; public void b(){}; }
Regardless of whether the ImplementTwo class implements either B or A or just B, it still needs to implement the a () method on interface A, because interface B extends interface A. Is there any reason that will explicitly execute
...implements B, A
instead
...implements B
?
IMO - , , - , . , , , , , , , , - .
. -, , . :
Class<?>[] interfaces = ImplementTwo.class.getInterfaces(); for (int i = 0; i < interfaces.length; i++) { System.out.println(interfaces[i]); }
, implements B, A, implements B .
implements B, A
implements B
, true :
true
A.class.isAssignableFrom(ImplementTwo.class)
- Serializable.
Serializable
: Serializable, - Serializable, Serializable.
. , .
. (, , A, B).
A
B
, ( ).
, . / .
. implements A, B implements B, A-B
implements A, B
. , . .