歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C# 之面向對象基礎總結

學完C#視頻後,對面向對象這個概念有了更深的體會。

那麼什麼是面向對象呢,什麼樣的程序是面向對象的設計呢,要明白這些首先要了解面向對象的三大特性:封裝、繼承、多肽。

總結圖:

一:封裝

是把客觀事物封裝成抽象的類

如:Cat類

        class Cat    //定義Cat類
        {
            private string name;        //聲明Cat類的私有字符串變量, 是內部字段
         

            public Cat()                //構造方法
            {
                this.name = " ";
            }
            public Cat(string name)    //將構造方法重載
            {
                this.name = name;
            }

            public string Shout()      //Shout 貓叫方法
            {
              return "喵";

            }
        }

貓的屬性name和Shout()的方法,都在Cat這個類中。

表面上看,Cat 類用 { }將它的屬性和方法括在了一起,其實是對象進行封裝。就好比我們常用的筆記本電腦,將很多零件封裝在了內部,我們用電腦的時候,只需要按一下開關就可以拉,不用再管他們內部的操作。

二:繼承

是類間的關系,被繼承的類是基類,繼承的類為派生類。

在C#中繼承的關鍵符號是 “:”,如Cat 類繼承Animal 類

      class Cat : Animal  //Cat 類繼承Animal 類 
        { 
            public Cat() 
                : base() //子構造方法需要調用父類同樣的構造方法用base關鍵字 
            { } 
            public Cat(string name) 
                : base(name) 
            { }

使用繼承將子類公共部分放到父類,不僅可以減少代碼重復,而且修改方便。

三:多肽

多肽表示不同的對象有相同的動作,但是通過他們自己的實現代碼執行

多肽實現:1,將所要實現的方法定義成父類中的虛方法;2,子類使用override實現

具體如下:

     class Animal
    {
        public virtual string Shout()  //定義了一個Shout的虛方法,可以子類被重寫
        {
          return "";
        }

    }

    class Cat : Animal                //Cat 類繼承Animal
    {
        public override string Shout()//對父類中的虛方法重寫,得到自己的Shout方法
        {
          return "喵";
        }
    }

  class Dog : Animal
  {
      public override string Shout()
      {
        return "旺";
      }
  }

總結:

1,屬性是封裝對象的數據,方法是對象的行為,在代碼中,屬性後面不帶括號,方法帶括號。

2,判斷兩個類間是不是繼承關系,就判斷滿不滿足“什麼什麼是什麼”,如“狗是動物”。

3,抽象類一定是用來繼承的,且實例化沒有意義。

4,重載是兩個或者多個構造函數,重寫是實現父類中的虛方法(virtual /override)。

5,在基類中定義的虛方法有方法體,實現的時候是重寫,有選擇的,而抽象方法沒有方法體,必須別子類重寫。

Copyright © Linux教程網 All Rights Reserved