When you declare any member Private it is accessible only inside the type it's declared in. If you declare Field1 as Private inside Class1 and then Class2 inherits Class1, Field1 will not be accessible in Class2. If you were to declare Field1 Protected though, it would then be accessible in Class2, although it would still not be accessible outside of Class1 or Class2 like a Public variable would.
While Protected members are not uncommon, Protected fields (member variables) are. More commonly you would declare methods Protected. A classic example are the methods that raise events. For instance, the Control class declares an OnPaint method that raises the Paint event. It's declared Protected so that all controls, which inherit the Control class, can access it to provide custom drawing functionality.