interface I1 {} class A implements I1 {} class B extends A implements I1 {} // Noncompliant {{"I1" is implemented by a super class; there is no need to implement it here.}} class C extends B implements I1 {} // Noncompliant {{"I1" is implemented by a super class; there is no need to implement it here.}} interface I2 extends UnknownInterface {} class D extends A {} class E extends D implements I1, I2 {} // Noncompliant {{"I1" is implemented by a super class; there is no need to implement it here.}} interface I3<T> {} class C1 {} class C2 implements I3<C1> {} class C3 extends C2 implements I3<C1> {} // Noncompliant {{"I3" is implemented by a super class; there is no need to implement it here.}} public class C5 implements I1, I1 {} // Noncompliant [[sc=32;ec=34]] {{"I1" is listed multiple times.}} interface I4 extends I1 {} interface I5 extends I4, I2 {} interface I6 extends I4, I5 {} // Noncompliant {{"I4" is already extended by "I5"; there is no need to implement it here.}} class F implements I1, I5 {} // Noncompliant {{"I1" is implemented by a super class; there is no need to implement it here.}} class G1 implements I4, I1 {} // Noncompliant {{"I1" is already extended by "I4"; there is no need to implement it here.}} class G2 implements I1, I4 {} // Noncompliant {{"I1" is already extended by "I4"; there is no need to implement it here.}} interface I7 {} interface I8 extends I7 {} interface I9 extends I7 {} class H1 implements I8, I9 {} // Compliant class H2 implements I8, I9, I7 {} // Noncompliant {{"I7" is already extended by "I8"; there is no need to implement it here.}} class H3 implements I9, I8, I7 {} // Noncompliant {{"I7" is already extended by "I9"; there is no need to implement it here.}} enum E1 implements I7, I8 {} // Noncompliant {{"I7" is already extended by "I8"; there is no need to implement it here.}} class L extends Object {} // Noncompliant [[sc=17;ec=23]] {{"Object" should not be explicitly extended.}} class M extends java.lang.Object {} // Noncompliant [[sc=17;ec=33]] {{"Object" should not be explicitly extended.}} class N extends UnknownClass1 implements UnknownInterface1, UnknownInterface2 {} // Compliant class Class5 extends UnknownClass1 implements UnknownInterface, UnknownInterface, // Noncompliant {{"UnknownInterface" is listed multiple times.}} java.io.UnknownInterface, java.io.UnknownInterface, // Noncompliant {{"java.io.UnknownInterface" is listed multiple times.}} UnknownParametrized<Unknown>, UnknownParametrized<Unknown> {} // Noncompliant {{"UnknownParametrized" is listed multiple times.}}