从子类对象调用超类方法

时间:2017-09-24 20:14:58

标签: java inheritance

我有两个类SuperClass和SubClass,

class SuperClass{ public void count(){} }
class SubClass extends SuperClass { }
class Test
{
    public static void main(String[] args)
    {
        new SubClass().count();
    }
}

这里我使用jdb来看看这个代码是如何工作的,在创建SubClass的Object之后,我希望调用SubClass的count方法作为继承SuperClass的count方法,但是SuperClass的count方法是被召唤。

我在jdb中使用“list”进行了检查,它显示了SuperClass的count方法行,为什么会发生这种情况?

2 个答案:

答案 0 :(得分:2)

当您调用对象的方法时,Java会检查该对象中是否存在该方法。如果是这样,它会调用它,否则它会检查父类中是否存在。等等,直到找到方法。 由于您没有覆盖您的方法,因此被调用的方法是父方法。

答案 1 :(得分:-1)

应该是下面的内容。

namespace :fb_ping do
desc "New fb ping"
task check: :environment do

  Service.all.each do | s |
    if s.name == 'Facebook'
      if FacebookStatusService.status === 1
        Ping.create(up: true, service: s)
        puts  'FB service is up'
      else
        Ping.create(up: false, service: s)
        puts  'FB service is down'
      end
    end
  end
end
相关问题