#java
#Ява
Вопрос:
Предположим, у меня есть 2 интерфейса, которые
interface add{ void add2No(float a, float b); }
и
interface Minus{ void Minus2No(float a, float b); }
затем по основному методу я уже переопределяю метод, который является
public class Count implements Add, Minus { public static void main(String[] args) throws IOException{ //declare var float a, b; String temp; //create object BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Count obj = new Count(); //User Input System.out.print("Enter your first Number : "); temp = br.readLine(); a = Float.parseFloat(temp); System.out.print("Enter your second Number : "); temp = br.readLine(); b = Float.parseFloat(temp); System.out.println("Value of " a " " b " is : " obj.Totaladd(float a, float b)); System.out.println("Value of " a " " b " is : " obj.TotalMinus(float a, float b)); } @Override public void Add2No(float a, float b) { float TotalAdd = a b; } @Override public void Minus2No(float a, float b) { float TotalMinus = a - b; } }
Правильно ли я использую реализацию интерфейса? почему возникает ошибка, когда я пытаюсь распечатать TotalAdd и TotalMinus?
Комментарии:
1. Всегда полезно вставить точную ошибку. Это особенно верно в том случае, если у вас есть несколько проблем с вашим кодом,
Ответ №1:
ДА. Потому что вы не возвращаете результаты. В настоящее время используются оба метода void
. Ты мог бы это изменить. Нравится,
interface Add { float add2No(float a, float b); } interface Minus { float minus2No(float a, float b); }
И затем
@Override public float add2No(float a, float b) { return a b; } @Override public float minus2No(float a, float b) { return a - b; }
Ответ №2:
Есть три неправильных места.
Первое неправильное место:
Потому что Java чувствительна к регистру.
Вызывается имя вашего метода интерфейса
add2No
, но вызывается имя вашей реализацииAdd2No
Второе неправильное место:
Существует проблема с передачей параметров вашего метода и способом вызова. Я не видел методов
Totaladd
иTotaladd
, определенных в вашем объекте Count.Если вы измените регистр, в
add2No
объекте Count должны быть толькоMinus2No
методы и.Вам нужно настроить имя одного из них и не передавать тип при передаче параметров.
Например:
obj.Totaladd(float a, float b)
должно бытьobj.Totaladd(a, b)
Третье неправильное место:
Если вам нужно вызвать метод, чтобы получить значение для расчета, вы должны настроить тип метода, он не должен быть
void