C\#new 와 override 의 차이 분석
돌아 와 구 글 에서 뉴 의 용법 은 다음 과 같다.
1.연산 자:대상 초기 화 및 구조 함수 호출
2.수정자:기본 클래스 숨 기 는 방법
3.일반적인 성명 에서 유형 매개 변수 로 사용 할 수 있 는 매개 변수의 유형 을 제약 합 니 다.
수정자 와 override 의 차이 점 에 대해 서 는 다음 글 을 보면 잘 모 르 겠 습 니 다.예 를 들 어 실행 결과 차이 점 을 발 견 했 습 니 다.다음은 코드 를 공유 하 겠 습 니 다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
abstract public class Test
{
public virtual void Prinf()
{
Console.WriteLine("Abstract Printf...");
}
}
public class Class1 : Test
{
public override void Prinf()
{
Console.WriteLine("Class One Override Printf...");
}
}
public class Class2 : Test
{
public new void Prinf()
{
Console.WriteLine("Class Two New Printf...");
}
}
static void Main(string[] args)
{
Class1 cls1 = new Class1();
Class2 cls2 = new Class2();
cls1.Prinf();
cls2.Prinf();
((Test)cls1).Prinf();
((Test)cls2).Prinf();
Console.ReadLine();
}
}
}
실행 결 과 는 다음 과 같 습 니 다.여러분 도 알 아 보 셨 을 거 라 고 믿 습 니 다.그 렇 군요.
new 기본 클래스 방법 을 숨 긴 후 기본 형식 으로 전환 하여 기본 클래스 의 가상 방법 을 호출 할 수 있 습 니 다.
한편,override 는 기본 클래스 의 방법 을 완전히 재 작성 하 였 으 며,하위 형식 을 기본 형식 으로 바 꾸 더 라 도 재 작성 후의 방법 을 호출 하 였 다.
그래서 new 는 기본 클래스 를 숨 기 는 방법 이 고,Override 는 기본 클래스 를 다시 쓰 는 방법 입 니 다.
override 는'덮어 쓰기'를 말 하 며,하위 클래스 가 부모 클래스 를 덮어 쓰 는 방법 을 말한다.하위 클래스 의 대상 은 부모 클래스 의 이 방법 에 더 이상 접근 할 수 없습니다.new 는'숨 기기'를 말 하 며,하위 클래스 에 부모 클래스 를 숨 기 는 방법 을 말한다.물론 일정한 전환 을 통 해 하위 클래스 의 대상 에서 부모 클래스 를 방문 할 수 있 는 방법 이다.그 러 니까 C\#new 와 override 의 차 이 는 덮어 쓰기 와 숨 기기 입 니 다.
다음은 코드:
class Base
{
public virtual void F1()
{
Console.WriteLine("Base's virtual function F1");
}
public virtual void F2()
{
Console.WriteLine("Base's virtual fucntion F2");
}
}
class Derived:Base
{
public override void F1()
{
Console.WriteLine("Derived's override function F1");
}
public new void F2()
{
Console.WriteLine("Derived's new function F2");
}
}
class Program
{
public static void Main(string[] args)
{
Base b1 = new Derived();
// , F1 。 OO
b1.F1();
// new ,
b1.F2();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
📋 모던 자바스크립트 Deep Dive | 17장 생성자 함수에 의한 객체 생성new 연산자와 Object 생성자 함수를 호출하면 빈 객체를 생성해서 반환한다. 생성자 함수란 new 연산자와 함께 호출하여 객체를 생성하는 함수를 말한다. 마치 객체(인스턴스)를 생성하기 위한 템플릿(클래스)처럼...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.