浅談C萶類の継承


引き継ぐ
一つのクラスは他のクラスから継承できます。C〓〓の中で、種類と種類の間はただ単一の継承だけが存在します。つまり、一つの種類の直接の基質は一つしかないということです。クラスとクラスの間で継承が実現される場合、サブクラスは、クラスの静的な構造方法、例示的な構造方法、および分析方法を除いて、その直接的なベースのすべてのメンバを自分のメンバーとして扱うことができる。しかし、基本クラスのメンバーはすべてサブクラスのメンバーとして利用できますが、ベースクラスのメンバーに異なるアクセス権限が設定されていると、派生クラスがアクセスできるメンバーも異なります。C((zhi)の継承は、クラスBから派生し、クラスBがクラスAから派生した場合、クラスCはクラスBの全メンバーに続き、クラスAの全メンバーも引き継がれる(それぞれの基質の静的な構造方法、実例的な構造方法、解析方法は除く)。サブクラス(派生クラス)は、引き継ぎを元に自分のメンバーを追加することができますが、引き継いだ親タイプ(基質)のメンバーは削除できません。分析方法の役割は、廃棄類の実例です。これからの文章をまとめて説明します。
コードの例を見ます。

using System;
namespace LycheeTest {
  public class TV {
    private int channel = 1; //      
    private int volume = 20; //      
    public static string model = "39     "; //  
    /// <summary>
    ///              ,            ///     protected          
    /// </summary>
    /// <param name="ch">        </param>/// <param name="vol">        </param>
    protected void Set(int ch, int vol) {
      channel = ch;
      volume = vol;
      Console.WriteLine("    ");
    }
    /// <summary>
    ///     
    /// </summary>
    public void ChPlus() {
      channel++;
    }
    /// <summary>
    ///     
    /// </summary>
    public void VolPlus() {
      volume++;
    }
    /// <summary>
    ///             
    /// </summary>
    public void Show() {
      Console.WriteLine("      :{0}", model);
      Console.WriteLine("  :{0}", channel);
      Console.WriteLine("  :{0}", volume);
    }
  }
  public class NewTV: TV {
    public void PlayUDisk() {
      this.Set(0, 30);
      this.Show();
      Console.WriteLine("       U       ......");
    }
  }
  class Program {
    static void Main(string[] args) {
      NewTV myNewTV = new NewTV();
      myNewTV.ChPlus();
      myNewTV.VolPlus();
      myNewTV.Show();
      myNewTV.PlayUDisk();
      Console.ReadKey();
    }
  }
}
上記のコードのうち、3行目のコードはベースTVを定義しています。その静的フィールドとインスタンスフィールドは、初期値設定項目があり、フィールドの初期化が行われます。11行目のコードはprotectedにアクセスするための例示的な方法を追加しました。この修飾子を使うと、このクラスの定義の内部とその派生クラスの内部だけがアクセスできます。なぜこの訪問修飾子を使いますか?この方法はクラスの外部に使うものではないからです。つまり、ユーザーに公開する必要はないということです。しかし、その継承クラスはまたそれを使用する必要がありますので、このアクセス権限のキーワードを使用して、ある程度の公開性、すなわち指向性の公開は、継承クラスのためだけに開かれます。この方法の役割は、具体的にインスタンスフィールドの値を設定することである。例フィールドをUディスクの内容をアナログ再生する場合、テレビのチャンネルと音量は特定の値を持つことができる。それ以外に、基本類の他の方法は変更されていません。37行目のコードはサブクラス、つまり派生クラスを定義しています。基本的な文法を継承すると、クラス名の後にコロンをつけて、ベースのクラス名をつけます。38行目のコードは、この方法では基本クラスのSetメソッドを呼び出し、基本的な方法のために2つのパラメータが入ってきます。この2つのパラメータは、Uディスクのコンテンツを再生するとき、テレビのチャンネルは0で、音量は30であると判断しました。Setメソッドを呼び出したときに、thisキーワードを使って、この方法は自分の実例であることを示しています。これは基質から継承されたもので、自分の財産に相当します。また、ベースクラスのShowメソッドを呼び出して、チャンネルと音量の設定値をもう一度表示します。このため、類TVと類NewTVとの関係はこのように述べられています。類TVはテレビの原型機と見なしてもいいです。類NewTVはこのような原型機の基礎の上に、テレビはまたアップグレードされています。Uディスク再生の機能が追加されています。他の機能はそのまま原型機から継承されて、再設計する必要はありません。46行目のコードは、サブクラスのインスタンスを定義し、47行目、48行目、49行目は、ベースクラスで定義された例示的な方法を直接呼び出した。これらの方法はすべて引き継がれ、完全にサブクラスの自分に属するからである。50行目は、サブクラス定義の新たな追加の独自の方法を呼び出します。このコードの実行
行の結果は以下の通りです

      :39      
  :2
  :21     
      :39     
  :0   :30
       U       ......
以上が本文の全部です。本文の内容は皆さんの学習や仕事に一定の助けをもたらしてくれると同時に、私達を応援してください。