Overloading(오버로딩)과 Overriding(오버라이딩) 차이

리리티·2022년 10월 24일
0

1. Overloading(오버로딩)

오버로딩 : 하나의 클래스에 같은 이름의 메소드를 여러 개 정의 하는 것

조건

  • 메소드 이름이 같아야한다.
  • 매개변수의 개수, 타입, 순서 중 한가지라도 달라야 한다.
  • 매개변수는 같은데 리턴타입만 다를 경우 오버로딩이 성립하지 않는다.

1.2 오버로딩 예제

이처럼 메소드 이름은 같지만 매개변수의 순서 타입 개수 한가지만 달라도
오버로딩 가능하다.


2. Overriding(오버라이딩)

오버라이딩 : 부모 클래스가 갖고 있던 메소드를 자식 클래스에서 재정의하여 사용하는 것

조건

  • 부모 메소드의 선언부와 자식 메소드의 선언부가 같아야한다
  • static 메소드는 클래스에 속하는 메소드이기 때문에 상속되지 않고 오버라이드 되지 않는다.
    • static 객체는 부모 메소드에서 메모리에 이미 할당 되어있기 때문에
  • 오버로드와 달리 리턴 타입 메소드 이름, 매개변수 순서 모두 같아야 한다.
  • 접근 제어자가 확대되는 것은 문제가 안되지만 범위가 축소는 불가능 하다.

2.2 오버라이딩 예제


3. 마치며


오버로딩오버라이딩
메소드 이름동일동일
매개변수, 타입달라야함동일
리턴 타입상관없음동일
profile
remind

0개의 댓글