>  기사  >  Java  >  메소드 오버로딩과 오버라이딩의 차이점은 무엇입니까?

메소드 오버로딩과 오버라이딩의 차이점은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-09 12:17:02517검색

What's the difference between method overloading and overriding?

메서드 오버로딩과 오버라이딩

메서드 오버로딩과 오버라이딩은 객체 지향 프로그래밍에서 서로 다른 두 가지 개념으로 공통점을 공유합니다. 둘 다 관련이 있습니다. 클래스의 메소드를 재정의합니다. 그러나 목적과 구현은 크게 다릅니다.

메서드 오버로딩

메서드 오버로드는 클래스가 이름은 같지만 인수 목록이 다른 여러 메서드를 선언할 때 발생합니다. 이를 통해 단일 메서드가 제공된 인수의 유형과 수에 따라 다양한 작업을 수행할 수 있습니다. 예:

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

이 예에서 클래스는 인수 개수가 다른 두 가지 버전의 foo 메서드를 정의합니다. foo 메소드를 호출할 때 컴파일러는 전달된 인수에 따라 호출할 버전을 결정합니다.

메소드 재정의

반면, 메소드 재정의에는 하위 클래스에 동일한 인수 목록이 있는 메서드입니다. 오버로딩과 달리 재정의는 하위 클래스가 상위 클래스에서 상속된 메서드의 자체 구현을 제공하려고 할 때 발생합니다. 이렇게 하려면 하위 클래스가 @Override 주석을 사용하여 기존 메서드를 재정의하고 있음을 나타내야 합니다.

class Parent {
    void foo(double d) { ... }
}

class Child extends Parent {

    @Override
    void foo(double d) { ... }
}

이 예에서 Child 클래스는 Parent 클래스에서 상속된 foo 메서드를 재정의합니다. Child 클래스의 인스턴스가 foo 메소드를 호출하면 Child 클래스의 재정의된 구현이 실행됩니다.

위 내용은 메소드 오버로딩과 오버라이딩의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.