같은 이름의 메서드를 한 클래스 내에 여러 개 정의하는 것을 말한다.
package javaplus.over;
public class OverloadingEx {
void demo(int a){
System.out.println(a);
}
void demo(int a, int b){
System.out.println(a+ "," + b);
}
double demo(double a){
System.out.println(a);
return a;
}
}
상속 관계에 있는 부모 클래스로부터 상속받은 메서드의 내용을 자식 클래스에서 재정의하는 것이다.
package javaplus.over;
public class OverridingEx {
void display() {
System.out.println("부모 메서드");
}
}
class Child extends OverridingEx {
@Override
void display() {
System.out.println("자식 메서드");
}
public static void main(String[] args) {
Child child = new Child();
child.display(); // "자식 메서드" 출력
OverridingEx parent = new OverridingEx();
parent.display(); // "부모 메서드" 출력
}
}
오버로딩은 같은 클래스 내에서 메소드 이름은 같지만 매개변수가 다른 여러 메소드를 정의하는 것
오버라이딩은 상속받은 메소드를 자식 클래스에서 재정의하는 것으로, 메소드의 이름, 매개변수 목록이 동일해야 하며, 오버라이딩은 상속과 밀접한 관련이 있다.