可以从Java的子类中排除类实例变量吗?

Jam*_*idt 6 java inheritance subclass instance-variables

可能是一个愚蠢的问题,但假装类Node有一个名为strength的实例变量.并且假装扩展Node的类Episode不需要强度(其他子类也可以).还假设有很多Episode节点都存储了一个强度实例.在Java中有没有办法说"这个子类没有强度变量"?我有点看到为什么这可能是不允许的,但我想我会检查一下.

更新:谢谢大家.我怀疑,这个问题的答案是"不",但是使用Episode不需要的变量/方法创建Node的子类,然后将需要这些变量/方法的其他(子)子类连接到新的子类正是我想要的.

Yur*_*kov 9

不,这是不可能的.你可以拥有eg NodeStrengthNodeclasses,一个没有力量,一个有它,然后Episode课程将延伸Node,其他课程将延伸StrengthNode.

另外,考虑到Java中的访问控制,好像strength是一个private变量Node,它不会Episode直接在类中访问(只使用getter方法),但它的实例无论如何都会存在于内存中.