Why is this an issue?
In the interest of code clarity, static
members of a base
class should never be accessed using a derived type’s name.
Doing so is confusing and could create the illusion that two different static members exist.
Noncompliant code example
class Parent {
public static int counter;
}
class Child extends Parent {
public Child() {
Child.counter++; // Noncompliant
}
}
Compliant solution
class Parent {
public static int counter;
}
class Child extends Parent {
public Child() {
Parent.counter++;
}
}