【问题标题】:calling super method from unrelated method从不相关的方法调用超级方法
【发布时间】:2014-04-22 18:35:29
【问题描述】:

今天我意识到调用super.foo() 不仅可以在覆盖的foo 方法中,而且可以在完全不相关的方法中:

class Base
{
    void foo()
    {
    }
}

class Derived extends Base
{
    void foo()
    {
    }

    void bar()
    {
        super.foo();    
    }
}

是否有任何现实世界的场景、设计模式或其他任何真正有用的地方?

【问题讨论】:

  • 你的意思是你想在哪里混合foosuper.foo?因为否则你应该在 foo 中执行 super,然后调用 foo。这条评论里的 foo 太多了?可能。
  • 有时你只是不喜欢你实现 foo 的方式,但你喜欢你父母的做法。
  • @LoganMurphy 我正在寻找具体的、具体的、真实的场景。
  • 我不知道...像这样pastebin.com/G4CBpgD6 ...jsut 因为java有它并不意味着它有用...java也几乎不使用枚举。
  • 是的,它有点不起眼,但没有理由不应该存在。可能存在一些实际有用的极端情况。

标签: java oop inheritance super


【解决方案1】:

当子类想要为方法提供比父类更有意义的名称时,这将很有帮助,或者在方法名称中提供有关操作的附加信息。

【讨论】:

    猜你喜欢
    • 2011-06-03
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2011-08-11
    • 1970-01-01
    相关资源
    最近更新 更多