【问题标题】:Un-overriding methods in java?java中的非覆盖方法?
【发布时间】:2013-04-16 03:56:05
【问题描述】:

我理解如果超类方法被声明为 public 就会被覆盖的概念。但是,我想知道是否有一种方法可以调用超类的方法而不是子类的方法。例如,超类下的toString 将打印出某些数据字段,而子类下的toString 将打印出另一组数据字段。我想调用这两种方法。有没有办法做到这一点?

【问题讨论】:

  • 如果你从一个实例字段中询问你不能...只有从子类方法本身你才能做到。

标签: java class methods subclass overriding


【解决方案1】:

要从子类中调用超类的 toString() 方法,您可以调用

super.toString();

因此,如果您希望对象的 toString() 方法同时调用其超类的 toString() 方法,您可以这样做

String str = // whatever the toString() of this object is
return str + super.toString();

马上!

【讨论】:

    【解决方案2】:

    从子类的方法(被覆盖)你可以调用super.toString()来调用super的版本,然后在下一个语句子版本中

    【讨论】:

      【解决方案3】:

      你需要调用childe的toString(), 孩子将在哪里调用 super.toString();

      【讨论】:

        【解决方案4】:

        你总是可以从你的子类中调用 super.toString() 来调用超类的方法。如果没有显式调用“super”,您将调用“last”覆盖版本,这称为polymorphism

        【讨论】:

          猜你喜欢
          • 2016-01-24
          • 2022-01-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-19
          • 2020-01-30
          • 1970-01-01
          • 2018-01-28
          相关资源
          最近更新 更多