오버로딩과 오버라이딩의 차이점

goyo·2023년 1월 9일
0

 

오버로딩(overloading)

이름은 같지만 시그니처(파라미터 수,타입)에는 다른 메소드를 중복으로 선언하는 것을 의미함

오버라이딩(overriding)

부모 클래스의 메소드의 동작 방법을 재정의하여 우선적으로 사용하는것

 


오버로딩의 특징

오버로딩은 같은 메소드라도 매개변수만 다르면 얼마든지 정의하고 사용할 수 있다.

  • 메소드 이름이 같아야함.
  • 리턴형이 같아도되고 달라도된다.
  • 파라미터 개수가 달라야한다.
  • 파라미터 개수가 같을 경우, 데이터타입이라도 달라야한다.
  • 리턴타입은 시그니처에 포함되지 않기 때문에 주의.컴파일 에러가 발생함

 


오버라이딩 특징

상속 관계에 있는 클래스간에 같은 이름의 메소드를 정의하는 기술
만약 자식클래스가 부모클래스에서 선언된 것과 같은 메소드를 가질 때, 메소드 오버라이딩이라고 한다.

  • 오버라이드 하고자 하는 메소드가 상위 클래스에 존재해야한다.
  • 메소드 이름이 같아야한다.
  • 메소드 파라미터 개수, 파라미터의 자료형이 같아야한다
  • 메소드 리턴형이 같아야한다.
  • 상위 메소드와 동일하거나 내용이 추가되어야한다.

요약 정리

오버로딩은 한 클래스 내에, 여러 개의 같은 이름의 메소드를 정의하는 것이며, 이렇게 메소드의 이름을 동일하게 만들어 프로그램의 가독성을 증가시킬 수 있다는 장점이 있다.

오버라이딩은 부모로부터 받ㅇ느 메소드의 로직(내부)을 입맛에 맞게 변경하는 것이다.
객체지향 언어의 특징인 다형성 중 하나이다.

0개의 댓글