Fundamental

오버로딩(Overloading) vs 오버라이딩(Overriding)

수마트 2020. 2. 4. 22:27

1. 오버로딩(Overloading)

오버로딩이란 매서드(함수)가 같은 이름을 여러개 정의하고, 매개변수의 유형이나 인자의 수나 다른 경우를 말한다.

이를 이용해 다양한 유형의 호출에 응답할 수 있다.

//오버로딩 예시
class Overloading {
	public int sum(int a, int b) {
    	return a + b;
    }
    
    public int sum(int a, int b, int c) {
    	return a + b +c;
    }
    
    public String sum(String a, String b) {
    	return a + b;
    }
 }

2. 오버라이딩(Overriding)

오버라이딩이란 상위 클래스의 매서드와 이름이 같은 함수를 하위 클래스(상속 관계에 있는 클래스)에 재정의하는 것을 말한다.

//오버라이딩 예시
public abstract class Shoes {
	public void print() {
    	System.out.println("Shoes");
    }
}

public class SoccerShoe extends Shoes {
    @Override
    public void print() {
    	System.out.println("SoccerShoe");
    }
 	public void kick() {
    	System.out.println("Soccer Kick");
    }
}

public class AdidasSoccerShoe extends Shoes {
	public void kick() {
    	System.out.println("Adidas Kick");
    }
}