在Java中,假设存在一个名为`DataProcessor`的接口,其中定义了一个`process(Object data)`方法。另外存在两个类`StringDataProcessor`和`IntegerDataProcessor`分别实现了`DataProcessor`接口,并各自重写了`process`方法以处理`String`和`Integer`类型的数据。若在主函数中,创建了一个`DataProcessor`类型的数组,并分别存储了`StringDataProcessor`和`IntegerDataProcessor`的对象实例。当遍历该数组并调用每个元素的`process`方法时,下列关于方法调用行为的描述,哪项最准确?
答案解析
选项A正确,Java的多态性允许父类引用指向子类对象,并在运行时动态决定调用哪个子类的方法。这是动态绑定的体现。选项B错误,Java接口没有默认实现,只能定义抽象方法。选项C错误,即使`StringDataProcessor`实例首先被放入数组,方法调用仍然是根据运行时实际对象类型决定,而不是根据数组中元素的插入顺序或类型。选项D错误,动态绑定属于多态的体现,而非重载。重载发生在编译时。
正确答案:A