Loading...

Методду перегрузка кылуу

 

Программада биз бир эле аталыштагы, бирок ар кандай типтеги жана/же параметрлердин саны менен методдорду колдоно алабыз. Бул механизм методду перегрузка кылуу деп аталат.

 

Мисалы:

public class Program{

     

    public static void main(String[] args) {

         

        System.out.println(sum(2, 3));          // 5

        System.out.println(sum(4.5, 3.2));      // 7.7

        System.out.println(sum(4, 3, 7));       // 14

    }

    static int sum(int x, int y){

            

        return x + y;

    }

    static double sum(double x, double y){

            

        return x + y;

    }

    static int sum(int x, int y, int z){

            

        return x + y + z;

    }

}

Бул жерде sum() методунун үч варианты же үч перегрузка аныкталган, бирок ал чакырылганда, өткөн параметрлердин түрүнө жана санына жараша система эң ылайыктуу версияны тандап алат.

 

Методдун перегрузкасына параметрлердин саны жана түрлөрү таасир этээрин белгилей кетүү керек. Бирок, перегрузка үчүн кайтаруу түрүндөгү айырма маанилүү эмес. Мисалы, төмөнкү учурда, ыкмалар кайтаруу түрү боюнча айырмаланат:

public class Program{

     

    public static void main(String[] args) {

        

        System.out.println(sum(2, 3));

        System.out.println(sum(4, 3));

    }

    static int sum(int x, int y){

            

        return x + y;

    }

    static double sum(int x, int y){

            

        return x + y;

    }

}

Бирок, бул перегрузка деп эсептелбейт. Анын үстүнө, мындай программа туура эмес жана жөн эле компиляция болбойт, анткени параметрлердин саны жана түрү бирдей болгон ыкма бир нече жолу аныкталган.