First: Your naming of classes and member variables is confusing. In Java class names should start with a capital letter "BaseClass", "Tire" and "TestClass" and member variables should start with a lower case letter ("life", "tread", "type"). That doesn't change the validity of your code, but makes it harder to grok for others. You are creating two entirely separate objects. One ...