Reports fields in a derived class that are named identically a field of a superclass. Java fields cannot be overridden in derived classes, so the field in the derived class will hide the field from the superclass.

As a result of such naming, you may accidentally use the field of the derived class where the identically named field of a base class is intended.

A quick-fix is suggested to rename the field in the derived class.

Example:

class Parent {
  Parent parent;
}
class Child extends Parent {
  Child parent;
}

You can configure the following options for this inspection:

  1. Ignore non-accessible fields - indicates whether this inspection should report all name clashes, or only clashes with fields which are visible from the subclass.
  2. Ignore static fields hiding static fields - ignore static fields which hide static fields in base classes.