C# 추상 클래스 튜토리얼(예제 포함): 추상화란 무엇입니까?
C#의 추상 클래스란 무엇입니까?
추상 클래스 인스턴스화할 수 없으며 키워드 abstract로 표시됩니다. 추상 클래스에는 XNUMX개 이상의 추상 메서드가 포함되어 있습니다. 추상 클래스는 기본 클래스 역할을 하며 해당 메서드를 구현하거나 재정의하는 하위 클래스에 의해 상속되도록 설계되었습니다.
아래 예제를 통해 C#의 추상 클래스를 배워보겠습니다. 다음은 'Animal'이라는 클래스의 정의입니다. 'Animal' 클래스를 정의하면 해당 동물이 개인지 고양이인지에 대해 알려진 바가 없습니다. 설명이라는 메서드는 클래스에 대해 정의된 일반 메서드일 뿐입니다.
이제 Animal이 정확히 무엇인지 알았으면 기본 클래스를 상속하는 다른 클래스를 만듭니다. 동물이 실제로 Dog라는 것을 알게 되면 기본 기본 클래스를 상속하는 Dog 클래스를 만듭니다. 여기서 중요한 차이점은 Dog 클래스가 DescriptAnimal 클래스의 이온 메소드. Dog라는 자체 C# 추상 메서드를 정의해야 합니다.Descript이온. 이것이 C# 추상 클래스의 기본 개념입니다.
C#에서 추상 클래스 만들기
C# 추상 클래스를 포함하도록 코드를 변경하는 방법에 대한 실시간 예제와 함께 C#의 추상 클래스를 살펴보겠습니다. C# 추상화 클래스를 사용하여 실행할 수 있는 것이 없기 때문에 코드를 실행하지 않을 것입니다.
단계 1) 첫 번째 단계로 추상 클래스를 만들어 보겠습니다. 클래스는 Tutorial이라고 불리며 하나의 메소드만 갖습니다. 모든 코드는 Program.cs 파일에 작성되어야 합니다.
코드 설명:-
- 먼저 추상 클래스를 정의합니다. abstract 키워드의 사용에 유의하세요. 이는 클래스가 추상 클래스임을 나타내는 데 사용됩니다.
- 다음으로, 아무 작업도 수행하지 않는 메서드를 정의합니다. 메서드에는 virtual이라는 키워드가 있어야 합니다. 이는 하위 클래스에서 메서드를 변경할 수 없음을 의미합니다. 이는 모든 추상 클래스의 기본 요구 사항입니다.
단계 2) 이제 자식 클래스를 추가해 보겠습니다. 이 코드는 Program.cs 파일에 추가됩니다.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { abstract class Tutorial { public virtual void Set() { } } class Guru99Tutorial:Tutorial { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Guru99Tutorial pTutor=new Guru99Tutorial(); pTutor.SetTutorial(1,".Net"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
이 코드에는 예외적인 것이 없습니다. 추상 Tutorial 클래스를 상속하는 'Guru99Tutorial'이라는 클래스를 정의합니다. 그런 다음 이전에 사용했던 것과 동일한 메서드를 정의합니다.
참고 :
여기서는 Tutorial 클래스에 정의된 Set 메소드의 정의를 변경할 수 없습니다. Tutorial 클래스에서는 'Set'(공용 가상 void Set())이라는 메서드를 정의했습니다. 메서드는 추상 클래스 C#의 일부였으므로 Guru99Tutorial 클래스에서 Set 메서드를 다시 정의할 수 없습니다.
요약
추상 클래스 C 샤프 다른 클래스에 대한 청사진이며 다음과 같이 표시됩니다. abstract
키워드. 직접 인스턴스화할 수 없으며 파생 클래스가 구현해야 하는 추상 메서드를 포함할 수 있습니다. 추상 클래스는 특정 기능을 허용하는 동시에 하위 클래스 간에 일관된 구조를 적용합니다. 이 개념은 일반적으로 기본 동작을 정의하고 상속을 통해 코드 유연성을 보장하는 데 사용됩니다.