SeoYeonBae / CS_study

:crown: 기술면접을 위한 공쥬들의 CS 짱터디 :pencil2:
0 stars 1 forks source link

오버로딩과 오버라이딩의 차이는 무엇인가요? #108

Open SeoYeonBae opened 8 months ago

Han7sunny commented 8 months ago

객체지향 프로그래밍에서 다형성을 구현하는 방법이다.

오버로딩 (OverLoading)

오버라이딩 (Overriding)

다형성은 크게 1. 컴파일 시 다형성과 2. 런타임 다형성이 있는데

  1. 컴파일 시 다형성

    • 컴파일러가 코드를 컴파일 할 때, 어떤 메소드가 호출되어야 하는지 결정하는 것
    • 오버로딩과 관련
  2. 런타임 다형성

    • 프로그램이 실행 중, 객체의 실제 타입에 따라 메소드 호출이 동적으로 결정되는 것
    • 오버라이딩과 관련
SeoYeonBae commented 6 months ago

오버로딩 : 메소드의 이름은 같고 매개변수의 갯수나 타입을 다르게 정의하는 것, 다만 리턴값만 다른 경우는 오버로딩이라 할 수 없음 오버라이딩 : 상위 클래스를 상속받은 하위 클래스가 상위 클래스의 메소드를 재정의 하는 것