>백엔드 개발 >C++ >C# 상속 메소드에 대한`new '와`재정의 키워드의 차이점은 무엇입니까?

C# 상속 메소드에 대한`new '와`재정의 키워드의 차이점은 무엇입니까?

DDD
DDD원래의
2025-01-28 12:01:09878검색

What's the Difference Between `new` and `override` Keywords for Methods in C# Inheritance?

new 객체 지향 프로그래밍에서 상속은 기본 클래스의 상속 및 확장 기능을 허용합니다. 파생 상품에서 메소드를 정의 할 때 개발자는 종종 키워드를 "신규"및 "오버라이드"로 사용합니다. 이 두 키워드는 비슷한 영향을 미치는 것처럼 보이지만 목적은 매우 다릅니다. override 상황 1 : 키워드

키워드의 방법은 파생 클래스를 나타내는 새로운 방법이며, 기본 클래스의 모든 방법과 관련이 없습니다. 기본 클래스의 이름이 같은 경우에도

메소드는 파생 클래스의 별도의 구현을 갖습니다.

상황 2 : 키워드 new 반면에 키워드는 기본 클래스에서 동일한 메소드의 구현을 나타냅니다. 컴파일러는 객체가 기본 클래스 참조에 의해 참조 되더라도 메소드가 상속 체인의 최신 구현을 사용하도록합니다.

행동 적 차이

과 new의 주요 차이점은 메소드 호출을 처리하는 방법입니다. 기본 클래스 참조에서 메소드가 호출되면 미분 클래스의 구현을 실행합니다. 그러나 메소드가 호출되면 참조 유형에 관계없이 파생 클래스의 구현을 구현합니다. new 문법 예

다음 코드는

의 차이를 보여줍니다. override 이 예에서는 ()을 호출하여 파생 된 유형의 객체에서 파생 클래스의 구현을 수행합니다. 그러나 () 호출은 기본 유형의 객체에서 기본 구현 ()에서 원래 구현을 수행하기 위해 ()는 새로운 메소드이기 때문입니다. 사용 사례

override : override 기본 클래스와 비교하여 미분 클래스를 완전히 사용해야하는 경우 기본 클래스와 완전히 다른 경우 사용됩니다.

:

파생 상품 클래스가 자체 기반 클래스를 상속하는 다른 또는 개선 된 방법을 제공하려는 경우 사용하십시오.

위 내용은 C# 상속 메소드에 대한`new '와`재정의 키워드의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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