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");
}
}