C#에서 하위 클래스의 속성 재정의

Muhammad Zeeshan 2023년10월12일
  1. C# 재정의 개요
  2. 추상 속성을 사용하여 C#의 하위 클래스에서 속성 재정의
C#에서 하위 클래스의 속성 재정의

이 문서에서는 C#을 사용하여 하위 클래스의 필드 또는 속성을 재정의하는 방법을 설명합니다. C#에서 재정의에 대한 개요를 살펴보겠습니다.

C# 재정의 개요

재정의를 통해 자식 클래스는 부모 클래스에 이미 있는 메서드를 구현할 수 있습니다. 이 기능은 이전에는 상위 클래스에서만 사용할 수 있었습니다.

하위 클래스에는 기본 클래스의 메서드와 이름이 비슷한 메서드가 포함되어 있으므로 하위 클래스의 구현이 기본 클래스의 구현보다 우선 순위가 높습니다.

예를 들어 추상 기본 클래스가 있고 이 부모 클래스에서 상속된 각 클래스에서 고유한 값을 가진 필드 또는 속성을 정의하려고 한다고 가정해 보겠습니다. 그리고 기본 클래스에 속하는 메서드에서 참조할 수 있도록 기본 클래스에서 지정하려고 합니다.

추상 속성을 사용하여 C#의 하위 클래스에서 속성 재정의

상속된 클래스가 재정의할 수 있는 추상 속성을 사용하는 것이 위의 상황에 대한 최적의 접근 방식입니다. 이것은 적용되고 깨끗하며 무시할 수 있다는 점을 포함하여 몇 가지 장점이 있습니다.

abstract class Tree {
  abstract public int MyLeaf { get; set; }
}

그러나 필드를 캡슐화하지 않고 하드 코딩된 값을 반환하는 것은 약간 이상해 보이며 그렇게 하려면 한 줄보다 몇 줄의 코드가 더 필요합니다. 우리는 set 작업을 위해 본문을 선언해야 하지만 이것은 거의 중요하지 않으며 아마도 우리가 익숙하지 않은 우회 기술이 있을 것입니다.

class Root : Tree {
  public override int MyLeaf {
    get { return 1; }
    set {}
  }
}

전체 예제 코드:

abstract class Tree {
  abstract public int MyLeaf { get; set; }
}

class Root : Tree {
  public override int MyLeaf {
    get { return 1; }
    set {}
  }
}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

관련 문장 - Csharp Property