It is somewhat confusing to have a field name matching the declaring class name. This probably means that type and or field names could be more precise. Example :
public class Foo extends Bar { // There's probably a better name for foo int foo; }