Почему метод Java с типом интерфейса не распознает этот перегруженный метод?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему метод Java с типом интерфейса не распознает этот перегруженный метод?

Сообщение Anonymous »

Я готовлюсь к экзамену и столкнулся со следующей проблемой:
IntfX — это интерфейс в пакете A, содержащий метод public void op_a(Double e)
CIsY — это класс в пакете A, который реализует IntfX и переопределяет op_a.
В пакете B основной класс импортирует пакет A, расширяет CIsY и переходит к перегрузке. оп_а как public void op_a(Double e, Double f)
Теперь в блоке psvm есть два экземпляра: Intfx a = new Main() и Main b = new Main()
Их он продолжает вызывать a.op_a(Double e, Double f) и c.op_a(Double e, Double f)
The a.op_a вызов терпит неудачу. Он показывает ошибку времени компиляции «ожидается 1 аргумент, но найдено 2».
Мой вопрос: почему объекту не удается использовать перегруженный метод op_a с двумя аргументами? В других задачах, когда есть две версии метода, jvm отдает предпочтение объекту, а не типу.
Код:
` пакет А:

Код: Выделить всё

public interface IntfX {
public void op_a(Double a);
public void op_b(Double b);
}

Код: Выделить всё

public class CIsY implements IntfX {
protected double v = 0.0;
String p = null;

public CIsY(Double x, String b) {
v = x;
p = b;
}

public void op_a(Double a) {
v += a;
}

public void op_b(Double b) {
v -= b;
}

public void op_c() {
v = 0.0;
p = null;
}
}

Пакет Б:

Код: Выделить всё

import pack_a.*;

public class Main extends CIsY{
public static void main(String[] args) {
IntfX a = new Main();
CIsY b = new Main();
Men c = new Main();

c.op_a(0.5,0.8);
a.op_a(0.0, 0.1);
}
public Main() {
super(0.0, "");
}

public void op_a(Double e, Double f) {
v = e + f;
}

public void  op_b(Double e, Double f) {
v = e + f;
}

public void op_K(Double d) {
v = d;
}
}
Я ожидал, что a.op_a сможет распознать перегруженный метод и скомпилировать его.

Подробнее здесь: https://stackoverflow.com/questions/785 ... overloaded
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»