산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

프로그램 예제를 사용한 C# 상속 및 다형성

C#에서 상속이란 무엇입니까?

상속 C#의 중요한 개념입니다. 상속은 부모 클래스와 자식 클래스를 정의하는 개념입니다. 자식 클래스는 부모 클래스의 메서드와 속성을 상속하지만 동시에 필요한 경우 메서드의 동작을 수정할 수도 있습니다. 자식 클래스는 필요한 경우 자체 메서드를 정의할 수도 있습니다.

이 C# 자습서에서는 다음을 배우게 됩니다.

프로그램 예제를 통해 C# 상속에 대해 더 잘 이해해 보겠습니다.

C# 상속 예제

이제 코드에 상속 개념을 통합하는 방법을 살펴보겠습니다.

1단계) 첫 번째 단계는 Tutorial 클래스의 코드를 변경하는 것입니다. 이 단계에서는 Tutorial.cs 파일에 아래 코드를 추가합니다.

이제 TutorialID 및 TutorialName 필드 모두에 'protected' 액세스 수정자를 추가해야 합니다.

액세스 수정자 자습서에서 이 액세스 수정자를 언급한 것을 기억하십시오. 글쎄, 당신은 이것을 갖는 목적을 볼 수 있습니다. 이 액세스 수정자(보호됨)가 있는 경우에만 하위 클래스가 상위 클래스의 필드를 사용할 수 있습니다.

2단계) 두 번째 단계는 새 자식 클래스를 추가하는 것입니다. 이 클래스의 이름은 "Guru99Tutorial"입니다. 이 단계에서는 Tutorial.cs 파일에 아래 코드를 추가합니다. 코드는 Tutorial 클래스 정의 뒤에 위치해야 합니다.

코드 설명:-

  1. 첫 번째 단계는 Guru99Tutorial 자식 클래스를 만드는 것입니다. 우리는 또한 이 클래스가 Tutorial 클래스의 자식 클래스가 될 것임을 언급해야 합니다. 이는 ':' 키워드로 수행됩니다.
  2. 다음으로 RenameTutorial이라는 메서드를 정의합니다. TutorialName 필드의 이름을 바꾸는 데 사용됩니다. 이 메서드는 Tutorial의 새 이름을 포함하는 문자열 변수를 허용합니다.
  3. 그런 다음 매개변수 pNewName을 TutorialName 필드에 할당했습니다.
    참고 :– "Guru99Tutorial" 클래스에서 TutorialName 필드를 정의하지 않았더라도 이 필드에 계속 액세스할 수 있습니다. "Guru99Tutorial"이 Tutorial 클래스의 자식 클래스이기 때문입니다. 그리고 Tutorial 클래스의 필드를 protected로 만들었기 때문에 이 클래스에서 액세스할 수 있습니다.

3단계) 마지막 단계는 기본 Program.cs 파일을 수정하는 것입니다. 콘솔 응용 프로그램에서 Guru99Tutorial 클래스의 개체를 만들 것입니다. 이 개체를 사용하여 RenameTutorial 메서드를 호출합니다. 그런 다음 GetTutorial 메서드를 사용하여 TutorialName 필드를 표시합니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 public class Tutorial
 {
  protected int TutorialID; 
  protected string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  
  public String GetTutorial()
  {
   return TutorialName;
  }
 }
  public class Guru99Tutorial:Tutorial
  {
   public void RenameTutorial(String pNewName)
   {
    TutorialName=pNewName;
   }
  
  static void Main(string[] args) 
  {
   Guru99Tutorial pTutor=new Guru99Tutorial();
   
   pTutor.RenameTutorial(".Net by Guru99");
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

코드 설명:-

  1. 첫 번째 단계는 Guru99Tutorial 클래스에 대한 개체를 만드는 것입니다. 이것은 'new' 키워드를 통해 수행됩니다. 이번에는 Tutorial 클래스의 개체를 생성하지 않습니다.
  2. Guru99Tutorial 클래스의 RenameTutorial 메소드를 사용하여 TutorialName 필드를 변경합니다. ".Net by Guru99" 문자열을 RenameTutorial 메서드에 전달합니다.
  3. 그런 다음 GetTutorial 메서드를 호출합니다. 이 메서드가 Guru99Tutorial 클래스에 정의되어 있지 않더라도 이 메서드에 계속 액세스할 수 있습니다. 그러면 GetTutorial 메서드의 출력이 Console.WriteLine 메서드를 통해 콘솔에 표시됩니다.

위의 코드가 제대로 입력되고 프로그램이 성공적으로 실행되면 다음과 같은 출력이 출력됩니다.

출력:

출력에서 TutorialName 필드의 이름이 ".Net by Guru99"로 변경되었음을 분명히 알 수 있습니다. 이것은 자식 클래스에서 호출한 RenameTutorial 메서드를 통해 가능했습니다.

C#의 다형성이란 무엇입니까?

다형성 C#에서 하나의 이름이 여러 형식을 가질 수 있는 OOP 개념입니다. 예를 들어 통신용 스마트폰이 있습니다. 선택한 통신 모드는 무엇이든 될 수 있습니다. 전화, 문자, 사진, 메일 등이 될 수 있습니다. 그래서 목표는 공통, 즉 소통이지만 접근 방식이 다릅니다. 이것을 다형성이라고 합니다.

아래 프로그램 예제를 통해 C# 다형성을 더 잘 이해할 수 있습니다.

C# 다형성 예

이제 코드에 다형성 개념을 통합하는 방법을 살펴보겠습니다.

1단계) 첫 번째 단계는 Tutorial 클래스의 코드를 변경하는 것입니다. 이 단계에서는 Tutorial.cs 파일에 아래 코드를 추가합니다.

코드 설명:-

1 &2) 첫 번째 단계는 이전 예제와 동일합니다. SetTutorial 메서드의 정의를 그대로 유지하고 있습니다.

3) 이 메소드는 pID 및 pName 매개변수를 기반으로 TutorialID 및 TutorialName을 설정합니다.

4) 여기에서 SetTutorial이라는 동일한 이름의 새 메서드를 추가하는 클래스를 변경합니다. 이번에는 pName인 하나의 매개변수만 전달합니다. 이 방법에서는 TutorialName의 필드를 pName으로 설정합니다.

2단계) 마지막 단계는 기본 Program.cs 파일을 수정하는 것입니다. 콘솔 애플리케이션에서 Guru99Tutorial 클래스의 개체를 만들 것입니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public void SetTutorial(string pName) 
  {
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
   
   pTutor.SetTutorial(1,"First Tutorial");
   Console.WriteLine(pTutor.GetTutorial());
   
   pTutor.SetTutorial("Second Tutorial");
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

코드 설명:-

  1. 첫 번째 단계에서는 2개의 매개변수가 있는 SetTutorial 메서드를 사용합니다. 이 메서드에 TutorialID와 TutorialName을 모두 전달하는 위치입니다.
  2. 두 번째 단계에서는 이제 매개변수가 하나만 있는 SetTutorial 메서드를 호출합니다. 이 메서드에 TutorialName을 전달하고 있습니다.

위의 코드를 제대로 입력하고 프로그램을 실행하면 다음과 같은 출력이 출력됩니다. Tutorial Name과 함께 Tutorial ID도 가져오려면 아래 단계를 따라야 합니다.

  1. public int GetTutorialID라는 별도의 메소드 생성
  2. 이 메소드에서 "return TutorialID"라는 코드 라인을 작성하십시오. 이것은 TutorialID를 호출 프로그램에 반환하는 데 사용할 수 있습니다.

출력:

출력에서 두 메서드가 모두 성공적으로 호출되었음을 분명히 알 수 있습니다. 이 때문에 "First Tutorial" 및 "Second Tutorial" 문자열이 콘솔로 전송되었습니다.

요약


C 언어

  1. C# 식, 문 및 블록(예제 포함)
  2. C# 클래스 및 개체
  3. C# 추상 클래스 및 메서드
  4. C# 부분 클래스 및 부분 메서드
  5. C# 봉인된 클래스 및 메서드
  6. 프로그램 예제가 있는 C++ 함수
  7. 구조체와 클래스의 차이점:C++ 예제로 설명
  8. while과 do-while의 차이점:예제와 함께 설명
  9. 예제가 있는 Python의 type() 및 isinstance()
  10. C# - 프로그램 구조