상위 클래스가 가지고 있는 메소드를 하위 클래스에서 재정의해서 사용하는 것을 의미한다.
오버로딩은 메서드 오버로딩과 생성자 오버로딩이 있다. 하지만 둘 다 같은 개념이다.
class OverloadingTest{
void cat(){
System.out.println("매개변수 없음")
}
void cat(int a, int b){
System.out.println("매개변수: "+a+","+b)
}
void cat(String c){
System.out.println("매개변수: "+c)
}
}
같은 이름의 메소드를 여러 개 가지면서 매개변수의 타입과 개수를 다르게 하여 정의하는 것을 의미한다. 즉, 메소드의 시그니처를 다르게 하여 정의하는 것이다.
class Woman{
public String name;
public int age;
public void info(){
System.out.println("여자의 이름은 "+name+", 나이는 "+age+"살입니다.")
}
}
class Job extend Woman{
String job;
public void info(){
super.info()
System.out.println("여자의 직업은 "+job+"입니다.")
}
}
구분 | 오버로딩 | 오버라이딩 |
---|---|---|
메소드 이름 | 동일 | 동일 |
매개변수,타입 | 다름 | 동일 |
반환타입 | 상관없음 | 동일 |