Knowledge/CS

[CS] Overriding 과 Overloading의 차이점

YoonJong 2022. 12. 9. 13:23
728x90
반응형

오버라이딩(Overridng) : 부모 클래스의 메서드를 재정의 하는 것

오버로딩(Overloading) : 메서드 이름은 동일하지만, 매개변수(인자)를 다르게 하는 것을 의미한다.

 

예제로 알아보는 것이 가장 좋다.

오버라이딩의 예

class Parent {
    String name;
    String age;

    public void info() {
        System.out.println("이름은" + name+  ", 나이는 " + age);
    }
}

class Son extends Parent {
    String home;
    // info 메서드 재정의
    public void info() {
        System.out.println("집은 " + home);
    }
}

public class Main {
    public static void main(String[] args) {
        Son son = new Son();
        son.home = "서울";
        son.info(); // 집은 서울 
    }
}

 

오버로딩의 예

class Calu {
    void add(int a, int b) {
        System.out.println(a + b);
    }
    // 오버로딩
    void add(int a, int b, int c) {
        System.out.println(a + b + c);
    }
    // 오버로딩
    void add(int a, int b, int c, int d) {
        System.out.println(a + b + c + d);
    }
}

public class Main {
    public static void main(String[] args) {
        Calu calu = new Calu();
        calu.add(1,2); //3
        calu.add(1,2,3); // 6
        calu.add(1,2,3,4); //10
    }
}
728x90
반응형