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

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.