method overloading

λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©

  • 같은 λ©”μ†Œλ“œ 이름, λ‹€λ₯Έ λ§€κ°œλ³€μˆ˜

  • λ‹€λ₯Έ μžλ£Œν˜•μ˜ κ°’λ“€λ‘œ 같은 μ„±μ§ˆμ˜ μž‘μ—…μ„ μ •μ˜ν•  λ•Œ

package sec04.chap06;

public class Ex01 {
    public static void main(String[] args) {
        int res1 = add(1, 2); // πŸ”΄ μŠ€ν…μΈνˆ¬λ‘œ λ“€μ–΄κ°€ λ³Ό 것
        int res2 = add(3, 4, 5);
        double res3 = add(1.2, 3.4);
        String res4 = add("둜보트 νƒœκΆŒ", 'V');
        String res5 = add('X', "Men");
    }

    static int add(int a, int b) { return a + b; }

    //  λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜κ°€ 닀름
    static int add(int a, int b, int c) { return a + b + c; }

    //  λ§€κ°œλ³€μˆ˜μ˜ μžλ£Œν˜•μ΄ 닀름
    static double add(double a, double b) { return a + b; }

    //  λ§€κ°œλ³€μˆ˜μ˜ μžλ£Œν˜• μˆœμ„œκ°€ 닀름
    static String add(String a, char b) { return a + b; }
    static String add(char a, String b) { return a + b; }

    //  ⚠️ λ°˜ν™˜ μžλ£Œν˜•μ΄ λ‹€λ₯Έ 것은 μ˜€λ²„λ‘œλ”© μ•ˆ 됨 - λ‹€λ₯Έ ν•¨μˆ˜λͺ… μ‚¬μš©
    //  static double add(int a, int b) { return (double) (a + b); }
}

μž¬κ·€ λ©”μ†Œλ“œ

  • 슀슀둜λ₯Ό ν˜ΈμΆœν•˜λŠ” λ©”μ†Œλ“œ

  • ν˜ΈμΆœμ‹œλ§ˆλ‹€ λ©”λͺ¨λ¦¬μ— μŠ€νƒμ΄ 좕적 - μ΄ˆκ³Όμ‹œ μŠ€νƒμ˜€λ²„ν”Œλ‘œμš° stack overflow μ—λŸ¬

package sec04.chap06;

public class Ex02 {

    public static void main(String[] args) {
        upTo5(0);
//        upTo5(2);
//        upTo5(4);
    }
    static void upTo5 (int start) {
        System.out.println(start);
        if (start < 5) {
            upTo5(++start);
        } else {
            System.out.println("-- μ’…λ£Œ --");
        }
    }
}
  • λ‹€λ₯Έ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•œ λ©”μ†Œλ“œλŠ” 호좜된 λ©”μ†Œλ“œκ°€ μ’…λ£Œλ  λ•ŒκΉŒμ§€ λ©”λͺ¨λ¦¬μ— 남아 있음

  • 호좜이 반볡될수둝 μœ„μ™€ 같이 λ©”μ†Œλ“œλ“€μ΄ μŒ“μ΄κ²Œ 됨

Last updated