我有两个类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方法行,为什么会发生这种情况?
答案 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