好的,那么我整个学期都学习了Java,并且认为自己对继承和超类/子类有清晰的理解。今天我们被分配了一个制作名为enemy的超类的作业,其中包含不同类型敌人的子类。我做得很好,我的所有子类都正常工作,但当我回来阅读我们必须遵循的指南时,我发现了这句话:
“超类的所有成员变量必须是私有的。必须通过子类中的受保护方法访问任何变量。”
根据我的学习,这对我来说毫无意义。如果一个变量在超类中是私有的,那么即使从子类中也无法访问。最后谈到的关于在子类中使用受保护方法也对我毫无意义。这如何帮助和/或允许任何方式访问超类?
根据我对继承所学的内容,以下是我认为正确的:
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
如果我对这里的某些事情理解有误,请解释一下!如果是我没有正确理解,我不想因此质疑授课教师给我们提供了错误的指导。
protected
方法”访问私有变量,但实际上是通过“子类中调用的protected
方法”访问。 - yshavit