상위 클래스의 동일한 메소드를 하위 클래스에서 다시 정의, 부모에게서 가져온 함수를 덮어씌운다고 생각하면 된다.
상위 클래스에서 정의한 메소드를 조금만 수정하거나 완전히 새로운 것으로 쓰고 싶을 때 씀
메소드의 반환 값, 메소드 이름, 매개변수가 같아야 함.
부모의 메소드가 final, private가 붙어있으면 오버라이딩 불가.
부모의 메소드가 자식의 메소드보다 공개적이어야 함.
클래스 내부에서 인자가 다르지만 이름이 같은 메소드를 정의해주는 것.
같은 이름의 메소드를 여러개 정의하고 싶을 때 사용
public class addFunction{
public int add(int a, int b){
return a + b
}
public int add(int a, int b, int c){
return a + b + c
}
}
반환값은 다를 수 있다.
인자는 같을 수 없다.
정적 메소드는 클래스 내부 변수에 접근 불가
정적 메소드 내부에서 this, super 불가