Java:没有所有Superclass实例变量/方法的子类继承

时间:2013-07-23 02:37:15

标签: java

一个理论问题: 是否可以从超类A创建子类B继承所有A的实例变量/方法,但超类A中的特定实例变量/方法除外?

4 个答案:

答案 0 :(得分:6)

情况表明A包含太多而不是一个好的基类。

创建一个C类,其中包含您希望通常对继承有用的A实现部分。使A和B都扩展为C,使其符合他们的要求。 C可以是抽象的。

答案 1 :(得分:4)

没有。如果B继承自A,它继承了A中的所有内容。(虽然它可以覆盖 A提供的方法实现。)

但是,可以使用合成而不是继承将A包装在B中。在B中,仅公开要公开的特定实例方法。

答案 2 :(得分:-1)

为了清楚起见,B将继承A的方法,而不包括A的实例变量。

如果您希望B不继承A的特定方法或变量,您可以声明最终关键字。

答案 3 :(得分:-2)

如果您不想继承,请将其设为私有。