Skip to main content

메소드를 우선하는 것은 무엇입니까?

메소드 재정의는 상속 계층 내에서 객체 지향 프로그래밍에 사용되며 슈퍼 클래스에 정의 된 메소드가 서브 클래스로 재정의 될 때 발생합니다.일반적으로 서브 클래스 방법은 슈퍼 클래스 메소드와 다른 것을 수행하거나 슈퍼 클래스의 기능을 확장하지만 그렇지 않습니다.메소드 오버 링은 재정의 된 메소드의 내용에 관계없이 슈퍼 클래스 메소드가 서브 클래스로 재정의 될 때마다 발생합니다.재정의 된 메소드 서명은 정확히 동일해야합니다. 예를 들어, 클래스 A에는 dosomething이라는 메소드가 포함될 수 있으며이 메소드에는 입력 매개 변수가 필요하지 않습니다.또한 클래스 B와 C는 클래스 A의 서브 클래스 일 수 있습니다. 클래스 B는 입력 매개 변수를 사용하지 않는 dosomething이라는 메소드를 포함 할 수 있으며, 클래스 C는 숫자를 입력 매개 변수로 취하는 메소드 Dosomething을 포함 할 수 있습니다.이 예에서는 클래스 B만이 메소드 재정의를 보여줍니다. DOSOMETHENT 방법은 슈퍼 클래스 A와 동일한 메소드 서명을 갖기 때문에 클래스 C의 DOSOMETHET 메소드는 완전히 새로운 방법을 생성하기 때문에 메소드 과부하를 보여줍니다.. in ual C ++의 가상 상속은 메소드 오버 링의 또 다른 예입니다.슈퍼 클래스의 가상 메소드는 구현되지 않았거나 구현되지 않을 수도 있지만 이에 대한 서브 클래스 정의는 메소드를 재정의하는 인스턴스입니다.메소드가 서브 클래스에서 무시되면, 슈퍼 클래스의 메소드는 명시 적으로 호출되지 않는 한 호출되지 않습니다.재정의 메소드를 호출하는이 특정한 방법은 종종 슈퍼 클래스 구현을 숨기라고합니다.Java 및 C ++ 모두에서 메소드 서명에 특정 키워드를 적용하여 메소드가 하위 클래스에서 무시되지 않도록 할 수 있습니다.이를 위해 Java는 최종 키워드를 사용하고 C ++는 Const 키워드를 사용합니다.상속 트리 전체에서 특정 함수가 항상 변경되지 않아야하는 경우 방법 재정의 방지에 도움이 될 수 있습니다.

일반적으로 작은 데이터를 얻는 간단한 방법을 재정의 할 필요가 없어야합니다.우선 순위가 가장 큰 경향이있는 사례는 서브 클래스가 완전히 새로운 방법을 만들지 않고 슈퍼 클래스 메소드에 기능을 추가하는 것을 목표로하는 경우입니다.하나의 특정 유형의 객체에 대해 방법을 완전히 재정의 해야하는 비정상적인 경우 도이 기술의 혜택을받을 수 있습니다.메소드가 무시할 때마다 프로그래머가 슈퍼 클래스 및 서브 클래스 방법을 적절히 주석하는 것이 중요합니다.이상적으로, 이러한 의견은 방법의 각 변형과 어떻게 다른지와 왜 다른지를 명확히해야합니다.