23.01.30 day 06 다형성 오버로드(overload)

Lee·2023년 1월 30일
0

4. 다형성 - 오버로드

4-1. 메서드 오버로드(overload)

  • 원칙적으로 하나의 클래스 안에서는 동일한 이름의 메서드가
    두 개 이상 존재할 수 없지만, 이를 가능하게 하는 예외적인 처리 기법

4-2. 이름이 동일한 메서드를 정의하기 위한 조건

  • 메서드간의 파라미터가 서로 달라야 한다.
    -> 파라미터의 데이터 타입이 다르다.
    (데이터 형이 동일하고 변수의 이름이 다른경우는 동일한
    파라미터로 인식된다)

    -> 파라미터의 개수가 다르다

    -> 서로 다른 데이터형을 갖는 파라미터들의 전달 순서가 다르다.

  • 리턴형이 다른 경우는 오버로드의 성립에 아무런 영향을 주지 않는다.

4-3. 오버로드의 예시

  • 파라미터의 데이터 형이 서로 다르기 때문에 오버로드 성립
    public void foo (int a ){ }
    public void foo (long a ){ }
  • 파라미터의 개수가 서로 다르기 때문에 오버로드 성립

    public void foo (int a ){ }
    public void foo (int a, int b ){ }

  • 데이터 형의 전달 순서가 서로 다르기 때문에 오버로드 성립

    public void foo (int a, String b ){ }
    public void foo (String a , int b ){ }

  • 오버로드 불가
    public int foo(int a ){ }
    public String foo(int x ){ }

      

4-4. 생성자의 Overload

  • 생성자 역시 메서드의 한 종류이므로 Overload가 가능하다.
  • 생성자를 Overload할 경우, 해당 클래스에 대해 '객체를 생성하는
    방법'을 다양하게 준비할 수 있게 된다.
profile
wow

0개의 댓글