Joe*_* J. 6 java inheritance inner-classes
是否存在在Java中使用内部类而不是子类更有利的情况(反之亦然)?根据我目前的理解,内部类可以访问外部类的字段和方法.这与使用继承有什么不同?
子类通常可以访问标记为public和protected的所有字段/方法.可以使用getter方法在子类中访问父类中标记为private的字段.基于我迄今为止看到的内容,当方法被标记为私有时,它们通常在类的其他方法中被调用,这些方法被标记为public或protected.当然,我不是一个经验丰富的Java程序员,但这似乎是大势所趋.
根据我目前的理解,选择一个在另一个之间似乎没有任何好处.有人可以让我深入了解为什么以及何时应该使用内部类而不是继承(或反之亦然)?
Ele*_*ill 10
内部类和子类之间有很大的区别:
关于情况:
如果使用继承,则在两个类之间定义"is-a"关系.那ChildClass 是一个 ParentClass.
另一方面,内部类并不总是与外部类直接相关.拥有内部类的主要原因是外部类使用其功能而不让其他类知道它.
最好的例子我能想到的把我的头顶部是一个LinkedList.它使用某种私有Node类来存储每个元素的内容.当然,单个Node不是LinkedList......但是LinkedList除非由它构成,否则它不能工作Nodes.除了LinkedList知道Node该类存在之外,没有其他任何类别的理由.