Latest web development tutorials

C #을 상속

상속은 객체 지향 프로그래밍에서 가장 중요한 개념의 일이다. 상속 만들고 훨씬 쉽게 응용 프로그램을 유지하게하는 클래스를 정의하는 다른 클래스를 기반으로 클래스를 정의 할 수있게 해준다. 또한 도움 코드 재사용 및 개발 시간을 감소시킨다.

당신이 클래스를 만들 때, 프로그래머 만 클래스의 기존 구성원이 될 수 있습니다 상속하는 새로운 클래스를 디자인해야 완전히 데이터 멤버와 멤버 함수 새를 다시 작성할 필요가 없습니다. 기존의기본 클래스는 클래스라고, 새로운 클래스는 파생 클래스라고합니다.

소속 상속의 아이디어의 실현 (IS-A)의관계. 예를 들면, 포유류(IS-A) 동물 개는 포유 동물 (IS-A)에 속하는,따라서개가 (IS가-A)동물속하는속한다.

자료 및 파생 클래스

클래스는이 데이터와 함수에서 여러 개의 기본 클래스 또는 인터페이스를 상속 할 수 있음을 의미 하나 이상의 클래스 또는 인터페이스에서 파생 될 수있다.

다음과 같이 C #을 구문 파생 클래스가 생성 :

<ACESS 지정자> 클래스 <BASE_CLASS>
{
 ...
}
클래스 <derived_class> : <BASE_CLASS>
{
 ...
}

파생 클래스의 직사각형 인 기본 클래스 모양이,이, 가정 :

시스템을 이용하여;
네임 스페이스 InheritanceApplication
{
   클래스 모양 
   {
      공공 무효 setWidth (INT의 w)
      {
         폭 = w;
      }
      공공 무효 setHeight (INT의 시간)
      {
         높이 = H;
      }
      INT 폭 보호;
      INT 높이 보호;
   }

   // 파생 클래스 클래스 사각형 : 모양
   {
      공공 INT의의 getArea ()
      { 
         반환 (폭 * 높이); 
      }
   }
   
   클래스 RectangleTester
   {
      정적 무효 메인 (문자열 []에 인수)
      {
         사각형 사각형 = 새로운 Rectangle ();

         Rect.setWidth (5);
         Rect.setHeight (7);

         개체 Console.WriteLine을의 // 인쇄 영역 ( "총 면적 : {0}", Rect.getArea ());
         Console.ReadKey ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

총 면적 : 35

기본 클래스를 초기화

파생 클래스는 멤버 변수 및 기본 클래스의 멤버 메서드를 상속합니다. 서브 클래스 객체가 생성되기 전에 따라서, 부모 개체가 생성되어야한다. 당신은 멤버 초기화 목록에서 상위 클래스를 초기화 할 수 있습니다.

다음 프로그램은이 점을 보여줍니다

시스템을 이용하여;
네임 스페이스 RectangleApplication
{
   클래스 직사각형
   {
      // 멤버 변수는 두 배 길이를 보호;
      이중 폭을 보호;
      공공 직사각형 (더블 리터, 더블 w)
      {
         길이 = 1;
         폭 = w;
      }
      공공 이중의 getArea ()
      {
         길이 * 너비를 반환;
      }
      공공 무효 표시 ()
      {
         Console.WriteLine ( "길이 : {0}", 길이);
         Console.WriteLine ( "폭 : {0}", 폭);
         Console.WriteLine ( "크기 : {0}"의 getArea ());
      }
   } // 끝 클래스의 직사각형  
   클래스 탁상 : 직사각형
   {
      개인 이중 비용;
      공공 탁상 (더블 리터, 더블 w) : (w 리터)베이스
      {}
      공공 더블 GetCost ()
      {
         이중 비용;
         비용 =의 getArea () * 70;
         비용을 반환;
      }
      공공 무효 표시 ()
      {
         base.Display ();
         Console.WriteLine ( "비용 : {0}", GetCost ());
      }
   }
   클래스 ExecuteRectangle
   {
      정적 무효 메인 (문자열 []에 인수)
      {
         탁상 t = 새로운 탁상 (4.5, 7.5);
         t.Display ();
         Console.ReadLine ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

길이 : 4.5
폭 : 7.5
지역 : 37,125
비용 : 2362.5

C # 다중 상속

C #은 다중 상속을 지원하지 않습니다.그러나, 다중 상속을 달성하기 위해 인터페이스를 사용할 수있다. 다음 프로그램은이 점을 보여줍니다

시스템을 이용하여;
네임 스페이스 InheritanceApplication
{
   클래스 모양 
   {
      공공 무효 setWidth (INT의 w)
      {
         폭 = w;
      }
      공공 무효 setHeight (INT의 시간)
      {
         높이 = H;
      }
      INT 폭 보호;
      INT 높이 보호;
   }

   // 기본 클래스의 PaintCost
   공용 인터페이스 PaintCost 
   {
      INT getCost (INT 영역);

   }
   // 파생 클래스 클래스 사각형 : 모양, PaintCost
   {
      공공 INT의의 getArea ()
      {
         반환 (폭 * 높이);
      }
      공공 INT getCost (INT 지역)
      {
         반환 영역 * 70;
      }
   }
   클래스 RectangleTester
   {
      정적 무효 메인 (문자열 []에 인수)
      {
         사각형 사각형 = 새로운 Rectangle ();
         INT 영역;
         Rect.setWidth (5);
         Rect.setHeight (7);
         영역 Rect.getArea = ();
         개체 Console.WriteLine을의 // 인쇄 영역 ( "총 면적 : {0}", Rect.getArea ());
         Console.WriteLine (이하 "총 비용을 페인트 : $ {0}", Rect.getCost (지역));
         Console.ReadKey ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

총 면적 : 35
총 비용 페인트 : $ (2450)