C#의 override 및 new
1700 단어 C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace
{
class Base
{
virtual public void outClassName()
{
Console.WriteLine( " " );
}
virtual public void outPut()
{
Console.WriteLine(" ");
}
}
class FirstDerived : Base
{
override public void outClassName()
{
Console.WriteLine(" outClassName ");
}
override public void outPut()
{
Console.WriteLine(" outPut ");
}
}
class SecondDerived : FirstDerived
{
public override void outClassName()
{
Console.WriteLine(" outClassName ");
}
new public void outPut()
{
Console.WriteLine(" outPut ");
}
}
class Program
{
static void Main(string[] args)
{
SecondDerived sd = new SecondDerived();
Base base1 = (Base)sd;
base1.outPut();// outPut
base1.outClassName();// outClassName
}
}
}
그림 C#의 원어:
대상 기본 클래스 부분의 인용을 사용하여 덮어쓰는 방법을 호출하면 방법의 호출은 파생 클래스 차원에서 삭을 따라 실행되며 오버라이드로 표시된 방법의 최고 파생 버전까지 실행됩니다.이 말의 키워드는 파생류 차원에서 삭을 따라 집행하고 오버라이드로 표시하는 방법이다
그러니까 new 표기로 거슬러 올라가지 않는 방법이라면
new를 사용하면 내 이해로는 이 방법과 부류 (부류의 부류) 를 차단하는 것이다.라벨
new public void outPut() {Console.WriteLine("두 번째 파생 클래스의 outPut 방법") }
이 방법은 상위 클래스의 void outPut () 방법과 아무런 관계가 없습니다.동적 귀속 자연 바퀴는 이 방법이 아니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.