Java 상속

Overriding vs Overloading

수업소개

부모 클래스의 기능을 재정의 하는 Overriding. 클래스에 같은 이름의 메소드를 복수로 탑재하는 Overloading을 살펴봅니다. 

 

 

 

강의

 

 

 

 

소스코드

https://github.com/egoing/java-inheritance/commit/fa42413244f0d01e9e0c989bb4337179a0217165

class Cal{
    public int sum(int v1, int v2){
        return v1+v2;
    }
    // Overloading
    public int sum(int v1, int v2, int v3){
        return v1+v2+v3;
    }
}
class Cal3 extends Cal{
    public int minus(int v1, int v2){
        return v1-v2;
    }
    // Overriding
    public int sum(int v1, int v2){
        System.out.println("Cal3!!");
        return v1+v2;
    }

}
public class InheritanceApp {
    public static void main(String[] args) {
        Cal c = new Cal();
        System.out.println(c.sum(2,1));
        System.out.println(c.sum(2,1,1));

        Cal3 c3 = new Cal3();
        System.out.println(c3.sum(2,1));
        System.out.println(c3.minus(2,1));
        System.out.println(c3.sum(2,1));
    }
}
class Cal2{
    public int sum(int v1, int v2){
        return v1+v2;
    }
    public int minus(int v1, int v2){
        return v1-v2;
    }
}

 

댓글

댓글 본문
  1. 문과생
    수업 도중에 사용한 클래스 내에서 메소드 이름이 같은 경우가 있어서 궁금했는데 오버로딩이라고 하는군요.
  2. hyuna lee
    감사합니다. 무슨 차이인지 알것같아요.
  3. 빽토리얼
    오버로딩(Overloading): 한국어로 '과적화', 상속과 관련없음, 같은 메서드 이름을 가지면서도 매개변수 타입 및 개수를 변화시키고 생성함으로써 여러 상황에 대해 대처가 가능하게 한다.
    오버라이딩(Overriding): 상속과 관련 깊음, 부모 클래스를 상속받은 자식 클래스가 부모 메서드와 같은 이름의 메서드를 생성해 내용을 다르게 함으로써 부모와 다르게 활용이 가능하게 한다.
  4. 넘무
    강의 감사합니다
  5. thebluerat
    2020년 6월 25일 목요일
graphittie 자세히 보기