我有A类,B类(扩展A)。我试图从B类中调出方法,当B被转换为A.这可能吗?
实施例
A myObject = new B();
myObject.myMethodFoundInB(param);
答案 0 :(得分:3)
你可以通过回到B来实现,即:
A myObject = new B();
((B)myObject).myMethodFoundInB(param);
或更安全:
A myObject = new B();
if (myObject instanceof B) {
((B)myObject).myMethodFoundInB(param);
}
答案 1 :(得分:0)
如果未在父级中定义该方法,则您将无法使用父类引用来调用它。
您可以在父类中定义抽象方法myMethodFoundInB
并在子类中重写。然后,您也可以使用父类引用来调用myMethodFoundInB
。
答案 2 :(得分:-1)
只有在类A中声明“myMethodFoundInB”时才可以这样做,我猜它不是。