Luigi Plinge wrote:...are private variables actually always inherited, but it's just that you can't access them if they're private? ...
Conceptually, yes.
In fact, some authors phrase it that way. For example,
The Java Tutorial says...
A subclass inherits all the member variables and methods from its superclass. However, the subclass might not have access to an inherited member variable or method. For example, a subclass cannot access a private member inherited from its superclass. One might say, then, that the item was not inherited at all. But the item is inherited.
The first edition of Mugal & Rasmussen's,
A Programmer's Guide to Java Certification said that private members "are still inherited, but they are not accessable in the subclasses." Then they changed their minds (with an interesting qualification) for the second edition: "Private members are not accessible from any other class. This also applies to subclasses... Since they are not accessible by simple name in a subclass, they are also not inherited by the subclass."
However, the "definitive"
Java Language Specification - 8.2 states...
Members of a class that are declared private are not inherited by subclasses of that class.
So I would say,
conceptually yes. Private members of a superclass are "part of" a subclass instance, and are reachable (as you've demonstrated). However, I would avoid the
word "inherited," because the JLS is clear about this.