1. Overloading이란?
- 정의 : 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의 할 수 있다.
- 조건 : 메소드의 이름이 같고 매개변수의 개수나 타입이 달라야 한다.
- 주의 점: 리턴 값만 다른 것은 오버로딩이 불가능 하다.
- 사용하는 이유
- 같은 기능을 하는 메소드를 하나의 이름으로 사용 가능
- 메소드의 이름을 절약할 수 있다.
2. Overriding 이란?
- 정의 : 부모 클래스로 부터 상속 받은 메소드를 자식 클래스에서 재정의하는 것
- 조건 : 오버라이딩 하려는 메소드의 이름, 매개 변수, 리턴 값이 모두 같아야한다.
- 오버라이딩에서 접근 제어자를 설정하는 규칙
- 자식 클래스에서 오버라이딩 하는 메소드의 접근 제어자는 부모 클래스 보다 좁게 설정할 수 없다.
- private, public, defalut, protected
- 예외는 부모 클래스의 메소드 보다 많이 선언 할 수 없다.
- static메소드를 인스턴스의 메소드로 또는 그 반대로 바 꿀 수 없다.
- 자식 클래스에서 오버라이딩 하는 메소드의 접근 제어자는 부모 클래스 보다 좁게 설정할 수 없다.
3. 참조
1) 오버라이딩, 오버로딩: https://hyoje420.tistory.com/14