一个理论问题: 是否可以从超类A创建子类B继承所有A的实例变量/方法,但超类A中的特定实例变量/方法除外?
答案 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)
如果您不想继承,请将其设为私有。