Latest web development tutorials

C#の継承

継承は、オブジェクト指向プログラミングは最も重要な概念の一つです。 継承は、私たちははるかに簡単なアプリケーションを作成し、維持することになるクラスを定義する別のクラスに基づいてクラスを定義することができます。 しかし、また、コードを再利用し、開発時間を短縮するために資します。

あなたはクラスを作成すると、プログラマは完全に新しいデータメンバとメンバ関数を再記述する必要はありません、あなただけのクラスの既存のメンバーがすることができます継承する新しいクラスを設計する必要があります。 既存の基底クラスは、クラスと呼ばれる、新しいクラスは、派生クラスと呼ばれています

所属継承のアイデアの実現には、(IS-A)の関係。例えば、哺乳動物は、(IS-A)動物、犬は哺乳類の(IS-A)に属するため、犬に(ISは-A)動物に属し属します。

基本クラスと派生クラス

クラスは、データと関数から複数の基底クラスまたはインタフェースを継承することができることを意味し、複数のクラスまたはインタフェースから誘導することができます。

C#の構文で派生クラスを作成し、次のとおりです。

<アセス指定子>クラス<BASE_CLASS>
{
 ...
}
クラス<derived_class>:<BASE_CLASS>
{
 ...
}

派生クラスの長方形である基底クラスの形状は、そこにある、と仮定します。

システムを用いました。
名前空間のInheritanceApplication
{
   クラスシェイプ 
   {
      公共ボイドにsetWidth(int型ワット)
      {
         幅=ワット;
      }
      ます。public void setHeight(int型H)
      {
         高さ= H;
      }
      保護されたint型の幅;
      保護されたint型の高さ。
   }

   //派生クラスのクラス長方形:形状
   {
      公共int型のgetArea()
      { 
         リターン(幅*高さ)。 
      }
   }
   
   クラスRectangleTester
   {
      静的な無効メイン(文字列[] args)
      {
         長方形のRect =新しいRectangle();

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

         オブジェクトConsole.WriteLineを( "総面積:{0}"、Rect.getArea())の//印刷領域と、
         Console.ReadKey()。
      }
   }
}

上記のコードはコンパイルされ、実行されると、次の結果を生成します。

総面積:35

基本クラスを初期化します

派生クラスは、メンバ変数と基底クラスのメンバメソッドを継承します。 サブクラスオブジェクトが作成される前にそのため、親オブジェクトを作成する必要があります。 あなたはメンバ初期化リスト内の親クラスを初期化することができます。

次のプログラムは、この点を示しています。

システムを用いました。
名前空間のRectangleApplication
{
   クラス長方形
   {
      //メンバー変数は、二重の長さを保護します。
      保護された二重の幅。
      公共長方形(ダブルリットル、二重ワット)
      {
         長さ=リットル;
         幅=ワット;
      }
      公共ダブルGETAREA()
      {
         長さ*幅を返します。
      }
      公共ボイドディスプレイ()
      {
         Console.WriteLineを( "長さ:{0}"、長さ);
         Console.WriteLineを( "幅:{0}"、幅);
         Console.WriteLineを( "サイズ:{0}"、GETAREA());
      }
   } //エンドクラスの長方形  
   クラスの卓上:長方形
   {
      プライベートダブルコスト。
      公共卓上(ダブルリットル、二重ワット):(ワットリットル、)ベース
      {}
      公共ダブルGetCost()
      {
         二重のコスト;
         コスト= GETAREA()* 70。
         コストを返します。
      }
      公共ボイドディスプレイ()
      {
         base.Display()。
         Console.WriteLineを( "コスト:{0}"、GetCost());
      }
   }
   クラスExecuteRectangle
   {
      静的な無効メイン(文字列[] args)
      {
         卓上トン=新しい卓上(4.5、7.5);
         t.Display()。
         Console.ReadLine();
      }
   }
}

上記のコードはコンパイルされ、実行されると、次の結果を生成します。

長さ:4.5
幅:7.5
エリア:33.75
コスト:2362.5

C#多重継承

C#は多重継承をサポートしていません。ただし、複数の継承を達成するためのインタフェースを使用することができます。 次のプログラムは、この点を示しています。

システムを用いました。
名前空間のInheritanceApplication
{
   クラスシェイプ 
   {
      公共ボイドにsetWidth(int型ワット)
      {
         幅=ワット;
      }
      ます。public void setHeight(int型H)
      {
         高さ= H;
      }
      保護されたint型の幅;
      保護されたint型の高さ。
   }

   //基本クラスPaintCost
   パブリックインターフェイスPaintCost 
   {
      int型getCost(int型の領域)。

   }
   //派生クラスのクラス長方形:形状、PaintCost
   {
      公共int型のgetArea()
      {
         リターン(幅*高さ)。
      }
      公共int型getCost(int型の領域)
      {
         返却エリア* 70。
      }
   }
   クラスRectangleTester
   {
      静的な無効メイン(文字列[] args)
      {
         長方形のRect =新しいRectangle();
         int型の領域と、
         Rect.setWidth(5);
         Rect.setHeight(7);
         面積= Rect.getArea()。
         オブジェクトConsole.WriteLineを( "総面積:{0}"、Rect.getArea())の//印刷領域と、
         Console.WriteLineを( "総コストをペイント:$ {0}"、Rect.getCost(エリア));
         Console.ReadKey()。
      }
   }
}

上記のコードはコンパイルされ、実行されると、次の結果を生成します。

総面積:35
総コストをペイント:$ 2450