아니 이거 뭐 맨날 알았다가 까먹었다가 난리임
걍 함 적어두고 한번씩 볼란다
일단 둘다 함수명은 동일하다.
오버로딩(Overloading): 같은 이름, 다른 parameter의 개수 및 type
오버라이딩(Overriding): 부모 클래스의 메서드를 자식 클래스에서 재정의해서 혹은 걍 상속 받아쓰기
OverLoading(확장, 과적)
동일 기능을하는 메서드를 하나의 이름으로 묶어주기 가능, 메서드 이름 절약
- 접근 제어자를 자유롭게 지정할 수 있다.
각 접근 제어자를 public, default, protected, private 등등 다 다르게 지정해줘도 노상관.
- 벗뜨 중요한건
매개변수의 타입, 개수가 다른 것임다.
Overriding(상속, 재정의)
매개변수, 반환형 타입이 같은 경우 덮어 써서 재정의 하기.
- 상위 클래스의 메서드보다 더 좁은 범위로 변경할 수 없다.
- 더큰 범위의 예외를 선언할 수 없다.
- 상위 클래스의 static 메서드는 class에 종속되어있기 때문에(컴파일 시 생성되어 메모리 적재, 다형성 적용 안댐), 상속도, override도 되지 않는다.
- final -> 하위 클래스가 메서드 재정의 막기, override 불가
- private -> 메서드 상속 자체 불가, override 불가
출처 https://wildeveloperetrain.tistory.com/110