Язык Java разрешает перегрузку методов внутри класса, для этого методы должны иметь одинаковые имена и различное количество параметров и (или) их типы. Не нужно указывать каких-либо ключевых слов, чтобы отметить перегружаемые методы - компилятор Java сам разберется.Пример:
private class OverloadDemo{ private void SomeMethod(){ JOptionPane.showMessageDialog(null, "Метод без параметра"); }
private void SomeMethod(byte Param){ JOptionPane.showMessageDialog(null, "Метод c параметром byte"); }
private void SomeMethod(short Param){ JOptionPane.showMessageDialog(null, "Метод c параметром short"); }
private void SomeMethod(int Param){ JOptionPane.showMessageDialog(null, "Метод c параметром int"); }
private void SomeMethod(long Param){ JOptionPane.showMessageDialog(null, "Метод c параметром long"); }
private void SomeMethod(float Param){ JOptionPane.showMessageDialog(null, "Метод c параметром float"); }
private void SomeMethod(double Param){ JOptionPane.showMessageDialog(null, "Метод c параметром double"); }
private void SomeMethod(Object Param){ JOptionPane.showMessageDialog(null, "Метод c параметром Object"); }
private void SomeMethod(String Param){ JOptionPane.showMessageDialog(null, "Метод c параметром String"); } } При попытке добавить в этот класс метод, который возвращает параметр (например String) и имеет входящий параметр с типом, который уже объявлен в классе - получим ошибку компиляции.
private String SomeMethod(float Param){ JOptionPane.showMessageDialog(null, "Метод c параметром float"); return "Возвращаем строку"; }
Отсюда: выходные параметры не учитываются при перегрузке методов - только входящие. Можно перегружать конструкторы класса.
|