2010-03-26 2 views

ответ

3

Это не допускается.

Подпись метода в Java считается именем метода и списком параметров. Тип возврата не является частью подписи метода.

Определение: Два из компонентов декларации в метода включают имя метода сигнатурного метода в и типы параметров .

Источник: http://java.sun.com/docs/books/tutorial/java/javaOO/methods.html

3

Это не допускается. Для компилятора возможно, что несколько подходят. Например:

SAMENAME(n); 

Может вернуть строку или быть недействительной, оба действительны.

2

Невозможно перегрузить метод по типу возврата. Прочтите раздел «Методы перегрузки» на странице Java Tutorial.

Как говорится,

компилятор не считает возвращать типа при дифференцировании методов, так вы не можете объявить два метода с той же подпись, даже если у них есть другого типа возвращаемого значения.

3

Вот простейшая иллюстрация, почему вы не можете. Представьте, вы реализуете:

String overloadedMethod(); 
int overloadedMethod(); 

и теперь я называю

overloadedMethod(); 

так, что один получает называется? Поскольку тип возврата не является обязательным, вы не можете определить, какой метод вызывать.

+0

Простой. На этом теоретическом языке это было бы то, что LHS. – Pyrolistical

+1

Нет LHS. Обратите внимание на тег java в вопросе. –

+0

у вас может быть сила компилятора LHS, но тогда в java ваш язык еженедельно печатается, что, если у вас есть LHS, является char, и у вас есть короткий и длинный ответ, с которым вы согласны? Этот тип вещей мог работать только однозначно (т. Е. Не иметь программиста, изучающего произвольные соответствия/правила соответствия LHS), если он был строго типизированным языком и + принудительно никогда не игнорировал возвращаемые значения – hhafez

0

нет u не могу сделать это. coz somtimes в java, методы называются игнорированием возвращаемого значения, которое известно как «метод, вызывающий его побочные эффекты».

считают это:

void x(){} 
int x(){} 

x();//method call --allowed in java 

, как можно определить, какие Java x() называется. , поэтому перегрузка в зависимости от типа возвращаемого значения не допускается в java.

1

Нет, потому что, когда программа натолкнулась на вызов функции SameName (param n), она не знает, что использовать.

Смежные вопросы