>백엔드 개발 >C++ >New vs. Override : 상속에서 각 메소드 수정자를 언제 사용해야합니까?

New vs. Override : 상속에서 각 메소드 수정자를 언제 사용해야합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-28 11:51:09812검색

수정 문자를 이해합니다

객체 중심 프로그래밍에서 파생 클래스가 기본 클래스를 재사용하고 수정할 수있는 메소드를 상속합니다. 그러나 는 상속 방법과 함께 사용될 수 있으며 각각의 다른 목적을 가지고 있습니다. new 상황 1 : override 수정 자의 상속 메소드 수정자를 사용할 때 파생 클래스는 기본 메소드와 동일한 이름의 별도 메소드를 만듭니다. 이것은 실제로 파생 상품에서 기본 클래스 방법의 가시성을 숨 깁니다. 기본 클래스의 코딩은 기본 클래스 방법의 구현을 직접 사용하며, 파생 클래스를 참조하는 코딩 코드는 파생 클래스 메소드의 구현을 사용합니다. 상황 2 :

수정 자의 상속 메소드 반면에 미분 클래스의 수정은이를 기본 클래스 메소드로 동일한 서명으로 바꾸도록 설계되었습니다. 이것은 기본 클래스의 참조에서 메소드가 호출 될 때 항상 파생 클래스의 정의의 실현을 사용한다는 것을 의미합니다.

주요 차이점 new override

가시 :

기본 클래스 방법을 숨기고 교체하십시오. new 호출 및 분석 : 기본 클래스 참조 액세스가 동일하더라도 항상 파생 클래스 메소드를 호출하고 최종 정의 구현을 호출하십시오.

예 :

는 완전히 다른 버전의 메소드를 생성하는 데 사용할 수 있으며 new는 기본 메소드를 확장하거나 수정하는 데 사용됩니다.

override 다음 기본 클래스 및 파생 상품을 고려하십시오 이 예에서, 파생 클래스의

수정자는 도출 클래스에서 doit ()가 호출 될 때 참조 유형에 관계없이 Devived.doit의 실현을 실행하도록합니다. 유형이 사용됩니다

위 내용은 New vs. Override : 상속에서 각 메소드 수정자를 언제 사용해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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