调试java代码时,在堆栈跟踪中,我注意到以下内容
ToyotaCar(AbstractCar).handle()
行:40
看起来大括号中的类是基类。 eclipse会不会显示基类?
答案 0 :(得分:2)
如果调用基类的方法,则堆栈行将显示基类(定义方法的位置)和调用此类方法的对象的类。
我在这里假设您做了类似
的事情ToyotaCar car = new ToyotaCar();
car.handle();
其中ToyotaCar
未覆盖handle()
方法。堆栈跟踪会通知您,handle()
的实际ToyotaCar
未提供AbstractCar
的来电,而是ToyotaCar
。但是,您在handle()
对象上调用了它。
如果不重写基类方法,那么堆栈行的这种表示法可能看起来过多。但是,请考虑您要覆盖handle()
方法的情况,但仍需要在AbstractCar
上调用super.handle();
。您需要发出
ToyotaCar.handle()
在handle()
内。在ToyotaCar
对象上调用ToyotaCar
方法时,您首先将其称为AbstractCar
,然后将其称为{{1}}。两条堆叠线将明确地允许您告诉另一条电话。