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.
class Parent { public static int counter; } class Child extends Parent { public Child() { Child.counter++; // Noncompliant } }
class Parent { public static int counter; } class Child extends Parent { public Child() { Parent.counter++; } }